ThemeShadow クラス

定義

ThemeShadow は、x、y、z 座標に基づいて適切にシャドウを描画するために任意の XAML 要素に適用できる、事前構成済みのシャドウ効果です。 また、ThemeShadow は、その他の環境仕様に合わせて自動的に調整されます。

  • 照明、ユーザー テーマ、アプリ環境、およびシェルの変更に適応します。
  • シャドウ要素は、その標高に基づいて自動的に行われます。
  • 移動時および昇格の変更時には、要素の同期が維持されます。
  • シャドウの一貫性は、アプリケーション全体やアプリケーション間で維持されます。
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ThemeShadow : Shadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class ThemeShadow : Shadow
Public Class ThemeShadow
Inherits Shadow
継承
Object IInspectable DependencyObject Shadow ThemeShadow
属性

Windows の要件

デバイス ファミリ
Windows 10, version 1903 (10.0.18362.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v8.0 で導入)

ヒント

詳細、設計ガイダンス、およびコード例については、「 Z 深度と影」を参照してください。

多くの一般的なコントロールは、ThemeShadow を使用して自動的に影を付けます。

WinUI 2 ギャラリー アプリがインストールされていて、上記の最小Windows 10バージョンの要件を満たしている場合は、ここをクリックしてアプリを開き、一般的なコントロールに対する ThemeShadow の動作に関するページを参照してください

注釈

ヒント

詳細、設計ガイダンス、およびコード例については、「 Z 深度と影」を参照してください。

ThemeShadow を任意の XAML 要素に適用して、概念的なキャスター UIElement と、その上にキャスターの影がレンダリングされている 1 つ以上のレシーバー UIElement の間の相対 x、y、z 座標に基づいて影を描画できます。

ThemeShadow では、四角形の影のみがサポートされます。 カスタム シャドウ効果の場合は、 DropShadow を使用できます。

ポップアップの ThemeShadows

ThemeShadow は、Popup 内の任意の XAML 要素に適用されると、自動的にシャドウを投影します。 背後にあるアプリの背景コンテンツと、下にあるそれ以外の開かれたポップアップに対して、シャドウが投影されます。

ポップアップで ThemeShadow を使用するには、 UIElement.Shadow プロパティを使用して、XAML 要素に ThemeShadow を適用します。 次に、 UIElement.Translation プロパティの z コンポーネントを使用するなどして、その背後にある他の要素から要素を昇格させます。 ほとんどのポップアップ UI では、アプリの背景コンテンツに対して推奨される相対的な既定の昇格は 32 有効ピクセルになります。

他の要素内の ThemeShadow

Popup にない XAML 要素からシャドウをキャストするには、ThemeShadow.Receivers コレクションでシャドウを受け取ることができる他の要素を明示的に指定する必要があります。 ビジュアル ツリー内で、投影先を投影元の先祖にすることはできません。

ThemeShadow のパフォーマンスのベスト プラクティス

  1. カスタムの投影先要素の数は、必要最小限に抑えてください。

  2. 複数のレシーバー要素が同じ昇格にある場合は、代わりに単一の親要素をターゲットにして、それらを結合してみてください。

  3. 複数の要素によって同じ種類のシャドウが同じ投影先要素に投影される場合は、そのシャドウを共有リソースとして追加して、再利用してください。

コンストラクター

ThemeShadow()

ThemeShadow クラスの新しいインスタンスを初期化します。

プロパティ

Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
Receivers

この ThemeShadow がキャストされる UI 要素のコレクションを取得します。

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください