Nasıl yapılır: Saydam veya Yarı Saydam UIElement Oluşturma
Bu örnek, nasıl UIElement saydam veya yarı saydam yapılacağını gösterir. Bir öğeyi saydam veya yarı saydam yapmak için Opacity özelliğini ayarlarsınız. Bir değeri 0.0 öğeyi tamamen saydam hale getirir, bir değeri 1.0 öğesi tamamen opak hale getirir. Bir değeri 0.5 , %50 opak ve benzeri bir öğe oluşturur. Bir öğe Opacity Varsayılan olarak olarak ayarlanır 1.0 .
Örnek
Aşağıdaki örnek, Opacity bir düğmenin 0.25 öğesini, ve içeriğini yaparak (Bu durumda düğmenin metni) %25 opak olarak belirler.
<!-- Both the button and its text are made 25% opaque. -->
<Button Opacity="0.25">A Button</Button>
//
// Both the button and its text are made 25% opaque.
//
Button myTwentyFivePercentOpaqueButton = new Button();
myTwentyFivePercentOpaqueButton.Opacity = new Double();
myTwentyFivePercentOpaqueButton.Opacity = 0.25;
myTwentyFivePercentOpaqueButton.Content = "A Button";
Bir öğenin içeriğinin kendi Opacity ayarları varsa, bu değerler kapsayan öğelerin çarpılmasıyla çarpılır Opacity .
Aşağıdaki örnek, düğme ' a bir Opacity düğmenin 0.25 ' a ve OpacityImage içindeki içindeki bir denetimin öğesini olarak belirler 0.5 . Sonuç olarak, görüntü% 12,5 opak: 0,25 * 0,5 = 0,125 olarak görünür.
<!-- The image contained within this button has an effective
opacity of 0.125 (0.25 * 0.5 = 0.125). -->
<Button Opacity="0.25">
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Margin="10">A Button</TextBlock>
<Image Source="sampleImages\berries.jpg" Width="50" Height="50"
Opacity="0.5"/>
</StackPanel>
</Button>
//
// The image contained within this button has an
// effective opacity of 0.125 (0.25*0.5 = 0.125);
//
Button myImageButton = new Button();
myImageButton.Opacity = new Double();
myImageButton.Opacity = 0.25;
StackPanel myImageStackPanel = new StackPanel();
myImageStackPanel.Orientation = Orientation.Horizontal;
TextBlock myTextBlock = new TextBlock();
myTextBlock.VerticalAlignment = VerticalAlignment.Center;
myTextBlock.Margin = new Thickness(10);
myTextBlock.Text = "A Button";
myImageStackPanel.Children.Add(myTextBlock);
Image myImage = new Image();
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri("sampleImages/berries.jpg",UriKind.Relative);
myBitmapImage.EndInit();
myImage.Source = myBitmapImage;
ImageBrush myImageBrush = new ImageBrush(myBitmapImage);
myImage.Width = 50;
myImage.Height = 50;
myImage.Opacity = 0.5;
myImageStackPanel.Children.Add(myImage);
myImageButton.Content = myImageStackPanel;
Bir öğenin saydamlığını denetlemek için başka bir yol da, öğesini boyayan için bir opaklık ayarlamanıza olanak sağlar Brush . Bu yaklaşım, bir öğenin bölümlerinin saydamlığını seçmeli olarak değiştirmeyi ve öğenin özelliğini kullanarak performans avantajları belirlemenizi sağlar Opacity . Aşağıdaki örnek, düğme öğesinin OpacitySolidColorBrush olarak ayarlandığını boyamak için kullanılan öğesinin ' i belirler Background0.25 . Sonuç olarak, fırçanın arka planı %25 donuk, ancak içeriği (düğme metni) %100 donuk kalır.
<!-- This button's background is made 25% opaque, but its
text remains 100% opaque. -->
<Button>
<Button.Background>
<SolidColorBrush Color="Gray" Opacity="0.25" />
</Button.Background>
A Button
</Button>
//
// This button's background is made 25% opaque,
// but its text remains 100% opaque.
//
Button myOpaqueTextButton = new Button();
SolidColorBrush mySolidColorBrush = new SolidColorBrush(Colors.Gray);
mySolidColorBrush.Opacity = 0.25;
myOpaqueTextButton.Background = mySolidColorBrush;
myOpaqueTextButton.Content = "A Button";
Ayrıca, bir fırçanın içindeki tek renklerin opaklığını da denetleyebilirsiniz. Renkler ve fırçalar hakkında daha fazla bilgi için bkz. düz renklerle boyama ve degradelere genel bakış. Bir öğenin opaklığının nasıl hareketlendirileceğini gösteren bir örnek için, bkz. bir öğe veya fırça Opaklığına Animasyon Ekleme.