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 です。

この例では、 ストーリーボード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 の残りの部分のレイアウト ルートです。 既定では、 キャンバス の子は、同じ絶対座標系で互いに描画されます。 RectangleZIndex 値が他の要素の ZIndex より大きいことを確認します (または、同じ結果を得るために XAML 要素の他の要素の後に Rectangle を宣言します)。ヒット テスト ロジック (PointerRoutedEventArgs.GetCurrentPointVisualTreeHelper.FindElementsInHostCoordinates を結合) を Rectangle の PointerPressed イベントに結び付けます

または、ヒット テストからオブジェクトを除外するには、不透明度を使用するのではなく、 IsHitTestVisiblefalse に設定する必要があります。

適用対象

こちらもご覧ください