UIElement.Opacity 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定物件的不透明度程度。
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
介於 0 和 1.0 之間的值,宣告不透明度因數,1.0 表示完整不透明度,而 0 表示透明。 預設值為 1.0。
範例
此範例使用 Storyboard 和 DoubleAnimation 來以 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:具有 Height、Width和 Opacity 為 0 的Rectangle,以及應該繪製于下方之其餘 UI 的配置根目錄。 根據預設, Canvas 的子系會在相同的絕對座標系統中彼此繪製。 請確定Rectangle的ZIndex值高於其他元素的ZIndex (,或在 XAML 元素中的其他元素之後宣告Rectangle,以取得相同的結果。) Wire 您的點擊測試邏輯 (結合PointerRoutedEventArgs.GetCurrentPoint和VisualTreeHelper.FindElementsInHostCoordinates) 至 Rectangle的PointerPressed事件。
或者,若要從點擊測試中排除物件,您應該將 IsHitTestVisible 設定為 false,而不是使用 Opacity。