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 です。
例
この例では、 ストーリーボード と DoubleAnimation を使用して不透明度をターゲットにします。 これにより、不透明度がアニメーション化され、1 秒間にアプリ固有の装飾フェードイン アニメーションが作成されます。
<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=0.5
オブジェクトが Canvas にも含まれている場合、 Opacity=0.5
レンダリングに有効な Opacity 値は です 0.25
。 1.0 より大きい不透明度の値は、値を使用すると 1.0 として扱われますが、プロパティ値を取得しても元の 1 より大きい値が得られます。 0 未満に設定された不透明度の値は、値を使用すると 0 として扱われます。 因数分解ロジックでは、不透明度を 2 に設定して、不透明度が 0.5 のオブジェクトに含まれている効果を取り消すことができません。入れ子オブジェクトの因数演算が計算される前でも、2 の値は 1.0 として扱われます。
Opacity は、ビジュアル状態のストーリーボードでアニメーション化される場合があり、期間が 0 のプロパティです。 たとえば、元のコントロール テンプレートでは、"FocusStates" の表示状態のフォーカス四角形が に Opacity="0"
設定されます。これは、この四角形が既定のフォーカスのない状態で表示されないようにするためです。 ただし、ビジュアルの状態では、これらのテンプレートと状態を使用するコントロールでキーボードフォーカスが検出された場合に Opacity を 1 に設定する、0 継続時間の "優先" 状態が定義されます。 この不透明度の使用方法の詳細については、「 表示状態のストーリーボード付きアニメーション」を参照してください。
不透明度とヒット テスト
Opacity 値が 0 の場合、ヒット テストからオブジェクトは除外されません。 この動作は、UI の残りの部分の上に描画される imagemap スタイルのオーバーレイを作成する場合に役立ちます。 たとえば、2 つの子を持つ Canvas を使用できます。高さ、幅、不透明度が 0 の四角形、下に描画する UI の残りの部分のレイアウト ルートです。 既定では、 キャンバス の子は、同じ絶対座標系で互いに描画されます。 Rectangle の ZIndex 値が他の要素の ZIndex より大きいことを確認します (または、同じ結果を得るために XAML 要素の他の要素の後に Rectangle を宣言します)。ヒット テスト ロジック (PointerRoutedEventArgs.GetCurrentPoint と VisualTreeHelper.FindElementsInHostCoordinates を結合) を Rectangle の PointerPressed イベントに結び付けます。
または、ヒット テストからオブジェクトを除外するには、不透明度を使用するのではなく、 IsHitTestVisible を false に設定する必要があります。