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
。 這會以動畫 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>
備註
在巢狀物件上設定時 Opacity
,轉譯的有效不透明度是所有適用不透明度因素的乘積。 例如,如果包含 Opacity=0.5
于同時 Opacity=0.5
的Canvas中包含 的物件,則轉譯的有效 Opacity
0.25
值為 。
Opacity
使用值時,大於 1.0 的值會被視為 1.0,雖然取得屬性值仍然會為您提供原始大於一的值。
Opacity
使用值時,設定為小於 0 的值會被視為 0。 在分解邏輯中,將 設定 Opacity
為 2 來取消具有 0.5 Opacity
的物件所包含的效果無法運作;即使計算巢狀物件因數之前,2 值也會被視為 1.0。
Opacity
是一個屬性,有時在視覺狀態分鏡腳本中以動畫顯示,持續時間為零。 例如,「FocusStates」 視覺狀態的焦點矩形會在原始控制項範本中設定 Opacity="0"
,因為您不希望此矩形出現在預設的非焦點狀態。 但是,當控制項使用這些範本和狀態偵測到鍵盤焦點時,視覺狀態會定義零持續時間的「焦點」狀態,將 Opacity 設定為 1。
不透明度和點擊測試
Opacity
值為 0 不會從點擊測試中排除物件。 此行為對於建立繪製在 UI 其餘部分之上的 imagemap 樣式重迭很有用。 例如,您可以使用具有兩個子系的Canvas:具有Height、Width和 Opacity 為 0 的Rectangle,以及應該繪製下其餘 UI 的配置根目錄。 根據預設, Canvas
繪製在相同絕對座標系統中彼此的子系。 請確定 的 Rectangle
ZIndex值高於另一個元素的 ZIndex
(,或在 XAML 元素中的其他元素之後宣告 Rectangle
,以取得相同的結果。) Wire 您的點擊測試邏輯 (結合Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint和VisualTreeHelper.FindElementsInHostCoordinates至 的PointerPressed事件 Rectangle
。
或者,若要從點擊測試中排除物件,您應該將 IsHitTestVisible 設定為 false
,而不是使用 Opacity
。