Share via


UIElement.Opacity Properti

Definisi

Mendapatkan atau mengatur tingkat keburaman objek.

public:
 property double Opacity { double get(); void set(double value); };
double Opacity();

void Opacity(double value);
public double Opacity { get; set; }
var double = uIElement.opacity;
uIElement.opacity = double;
Public Property Opacity As Double
<uiElement Opacity="double" .../>

Nilai Properti

Double

double

Nilai antara 0 dan 1,0 yang menyatakan faktor keburaman, dengan 1,0 yang berarti tingkat keburaman penuh dan 0 yang berarti transparan. Nilai defaultnya adalah 1,0.

Contoh

Contoh ini menggunakan Storyboard dan DoubleAnimation untuk menargetkan Opacity. Ini menganimasikan Opacity untuk membuat animasi dekoratif khusus aplikasi yang memudar selama durasi satu detik.

  <UserControl x:Class="animation_ovw_intro.Page"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  Width="400" Height="300">

  <StackPanel>
    <StackPanel.Resources>
      <!-- Animates the rectangle's opacity. -->
      <Storyboard x:Name="myStoryboard">
        <DoubleAnimation
          Storyboard.TargetName="MyAnimatedRectangle"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:1" 
          AutoReverse="True" 
          RepeatBehavior="Forever"/>
       </Storyboard>
    </StackPanel.Resources>
    <TextBlock Margin="10">Click on the rectangle to start the animation.</TextBlock>

    <Rectangle PointerPressed="Item_Clicked"
      x:Name="MyAnimatedRectangle"
      Width="100" Height="100" Fill="Blue" />

  </StackPanel>
</UserControl>

Keterangan

Ketika Opacity diatur pada objek yang disarangkan, tingkat keburaman yang efektif untuk penyajian adalah produk dari semua faktor opasitas yang berlaku. Misalnya, jika objek yang memiliki Opacity=0.5 terkandung dalam Kanvas yang juga Opacity=0.5, nilai efektif Opacity untuk penyajian adalah 0.25. Opacity nilai yang lebih besar dari 1,0 diperlakukan sebagai 1,0 ketika nilai digunakan, meskipun mendapatkan nilai properti akan tetap memberi Anda nilai asli yang lebih besar dari satu. Opacity nilai yang ditetapkan sebagai kurang dari 0 diperlakukan sebagai 0 saat nilai digunakan. Dalam logika faktor, mengatur ke Opacity 2 untuk membatalkan efek yang dikandung oleh objek dengan 0,5 Opacity tidak berfungsi; nilai 2 diperlakukan sebagai 1,0 bahkan sebelum faktor objek berlapis dihitung.

Opacity adalah properti yang terkadang dianimasikan dalam papan cerita status visual, dengan durasi nol. Misalnya, persegi panjang fokus untuk status visual "FocusStates" diatur dengan Opacity="0" dalam templat kontrol asli, karena Anda tidak ingin persegi ini muncul dalam status default yang tidak berfokus. Tetapi status visual menentukan status "Fokus" durasi nol yang mengatur Opacity ke 1 ketika kontrol menggunakan templat dan status ini telah mendeteksi bahwa itu berfokus pada keyboard.

Opasitas dan pengujian hit

Nilai Opacity 0 tidak mengecualikan objek dari pengujian hit. Perilaku ini dapat berguna untuk membuat overlay gaya peta gambar yang digambar di atas UI lainnya. Misalnya, Anda dapat menggunakan Kanvas yang memiliki dua anak: Persegi panjang yang memiliki Tinggi, Lebar dan Tingkat Keburaman 0, dan akar tata letak UI lainnya yang harus menggambar di bawahnya. Secara default anak-anak Canvas gambar di atas satu sama lain dalam sistem koordinat absolut yang sama. Pastikan bahwa nilai ZIndex lebih tinggi dari Rectangle elemen ZIndex lain (atau nyatakan Rectangle setelah elemen lain dalam urutan elemen XAML untuk mendapatkan hasil yang sama.) Kawat logika pengujian hit Anda (menggabungkan Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint dan VisualTreeHelper.FindElementsInHostCoordinates ke peristiwa PointerPressed untuk Rectangle.

Atau, untuk mengecualikan objek dari pengujian hit, Anda harus mengatur IsHitTestVisible ke false, daripada menggunakan Opacity.

Berlaku untuk

Lihat juga