UIElement.Opacity Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
Nilai antara 0 dan 1,0 yang menyatakan faktor keburaman, dengan 1,0 yang berarti 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 fade-in dekoratif khusus aplikasi 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>
' When the user clicks the Rectangle, the animation
' begins.
Private Sub Pointer_Clicked(ByVal sender As Object, ByVal e As PointerRoutedEventArgs)
myStoryboard.Begin()
End Sub
Keterangan
Ketika Opasitas diatur pada objek yang berlapis, opasitas 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 Opasitas yang efektif untuk penyajian adalah 0.25
. Nilai opasitas 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. Nilai opasitas yang ditetapkan sebagai kurang dari 0 diperlakukan sebagai 0 saat nilai digunakan. Dalam logika faktor, mengatur Opacity ke 2 untuk membatalkan efek terkandung oleh objek dengan 0,5 Opacity tidak berfungsi; 2 nilai diperlakukan sebagai 1,0 bahkan sebelum faktor objek berlapis dihitung.
Opasitas 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 panjang 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. Untuk informasi selengkapnya tentang penggunaan Opacity ini, lihat Animasi storyboard untuk status visual.
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 Opasitas 0, dan akar tata letak UI lainnya yang harus menggambar di bawahnya. Secara default anak-anak Kanvas menggambar di atas satu sama lain dalam sistem koordinat absolut yang sama. Pastikan bahwa nilai ZIndexpersegi panjang lebih tinggi dari ZIndex elemen lain (atau deklarasikan Persegi panjang setelah elemen lain dalam urutan elemen XAML untuk mendapatkan hasil yang sama.) Kawat logika pengujian hit Anda (menggabungkan 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.