共用方式為


如何:將 UIElement 設為透明或半透明

此範例示範如何將 UIElement 設為透明或半透明。 若要讓元素成為透明或半透明,您可以設定其 Opacity 屬性。 0.0 的值讓元素完全透明,而 1.0 的值則讓元素完全不透明。 0.5 的值會使元素 50% 不透明等等。 根據預設,Opacity 元素會設定為 1.0

範例

下列範例會將按鈕的 Opacity 設定為 0.25,使其及其內容 (在此案例中為按鈕的文字) 25% 不透明。

<!-- 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";

如果元素的內容有自己的 Opacity 設定,這些值會與包含元素相乘 Opacity

下列範例會將按鈕的 Opacity 設定為 0.25,以及按鈕中所含 Image 控制項的 Opacity,以 0.5。 因此,影像會顯示 12.5% 不透明:0.25 * 0.5 = 0.125。

<!-- 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;

另一個控制元素不透明度的方法,是設定繪製元素的 Brush 不透明度。 此方法可讓您選擇性地改變元素部分的不透明度,並提供使用元素的 Opacity 屬性的效能優勢。 下列範例會設定用來繪製按鈕 BackgroundSolidColorBrushOpacity 設定為 0.25。 因此,筆刷的背景為 25% 不透明,但其內容 (按鈕的文字) 仍保持 100% 不透明。

<!-- 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";

您也可以控制筆刷內個別色彩的不透明度。 如需顏色和筆刷的詳細資訊,請參閱使用純色和漸層繪製的概觀。 如需示範如何以動畫顯示元素不透明度的範例,請參閱以動畫顯示元素的不透明度或筆刷