UIElement.Opacity 屬性

定義

取得或設定物件的不透明度程度。

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" .../>

屬性值

Double

double

介於 0 和 1.0 之間的值,宣告不透明度因數,1.0 表示完整不透明度,而 0 表示透明。 預設值為 1.0。

範例

此範例使用 StoryboardDoubleAnimation 來以 Opacity 為目標。 這會以動畫顯示不透明度,以在一秒的持續時間內建立應用程式特定的裝飾淡入動畫。

  <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

備註

在巢狀物件上設定 Opacity 時,轉譯的有效不透明度是所有適用不透明度因素的乘積。 例如,如果包含的 物件 Opacity=0.5 也包含在 CanvasOpacity=0.5 中,則轉譯 0.25 的有效不透明度值為 。 使用值時,大於 1.0 的不透明度值會被視為 1.0,不過取得屬性值仍然會為您提供原始大於一的值。 使用值時,設定為小於 0 的不透明度值會被視為 0。 在分解邏輯中,將 Opacity 設定為 2 以取消具有 0.5 Opacity 的物件所包含的效果無法運作;即使計算巢狀物件分解之前,2 值也會被視為 1.0。

不透明度是一種屬性,有時在視覺狀態分鏡腳本中以動畫顯示,持續時間為零。 例如,「FocusStates」 視覺狀態的焦點矩形會在原始控制項範本中使用 設定 Opacity="0" ,因為您不希望此矩形出現在預設的非焦點狀態中。 但是視覺狀態會定義零持續時間的「焦點」狀態,當控制項使用這些範本和狀態偵測到其鍵盤焦點時,將 Opacity 設定為 1。 如需此不透明度使用方式的詳細資訊,請參閱 視覺狀態的腳本動畫

不透明度和點擊測試

不透明度值為 0 不會從點擊測試中排除物件。 此行為有助於建立繪製在 UI 其餘部分的 imagemap 樣式重迭。 例如,您可以使用具有兩個子系的Canvas具有 HeightWidth和 Opacity 為 0 的Rectangle,以及應該繪製于下方之其餘 UI 的配置根目錄。 根據預設, Canvas 的子系會在相同的絕對座標系統中彼此繪製。 請確定RectangleZIndex值高於其他元素的ZIndex (,或在 XAML 元素中的其他元素之後宣告Rectangle,以取得相同的結果。) Wire 您的點擊測試邏輯 (結合PointerRoutedEventArgs.GetCurrentPointVisualTreeHelper.FindElementsInHostCoordinates) 至 RectanglePointerPressed事件。

或者,若要從點擊測試中排除物件,您應該將 IsHitTestVisible 設定為 false,而不是使用 Opacity。

適用於

另請參閱