FrameworkElement.Style プロパティ

定義

レイアウトとレンダリング中にこのオブジェクトに適用されるインスタンス Style を取得または設定します。

public:
 property Style ^ Style { Style ^ get(); void set(Style ^ value); };
Style Style();

void Style(Style value);
public Style Style { get; set; }
var style = frameworkElement.style;
frameworkElement.style = style;
Public Property Style As Style
<frameworkElement Style="{StaticResource styleResourceKey}"/>

プロパティ値

オブジェクトに適用されたスタイル (存在する場合)。それ以外の場合は null。 既定で構築された FrameworkElement の既定値は です null

注釈

プロパティを Style 直接設定することは、UI 要素の外観をスタイル設定する最も一般的な方法ではありません。 代わりに、次のいずれかの手法を使用して UI 要素の外観に影響を与えます。

  • 多くの場合、UI 要素の個々の UI プロパティを XAML の属性として設定します。 FrameworkElement.Style は現在の要素にのみ適用され、 からの FrameworkElement.Style 値はローカル プロパティ値によって上書きされるため、ローカル値の設定はより直接的で予測可能になります。 Style 値とローカル プロパティ値の関係の詳細については、「依存関係プロパティの概要」を参照してください。
  • コントロール作成者は通常、テンプレート可能なコントロールを記述しますが、既定のテンプレートも付属しています。 アプリでは、リソースで定義されているスタイルの一部である新しい ControlTemplate を提供することで、コントロールを使用してその外観を変更できます。 このスタイルは、通常、 を設定Styleすることによってではなく、暗黙的なスタイル機能を使用して適用されます。 詳細については、「コントロールの スタイル設定」を参照してください。
  • コントロール作成者は、コントロールの一部を参照するプロパティも公開します。このプロパティは、その部分のみにスタイルまたは値を適用できるため、コントロールを完全に再テンプレートする必要はありません。 ここでは、 ではなく FrameworkElement.Style、より具体的なプロパティを設定しています。
  • ビジュアル状態モデルは、ユーザー自身が視覚的にマニフェストする状態の変化に応じて、実行時にコントロールのスタイルを頻繁にリセットします。 たとえば、コントロール テンプレートには通常、コントロールの外観に視覚的フォーカス インジケーターを追加する "フォーカス" 状態があり、キーボード ユーザーは UI のどの要素が現在のキーボード フォーカスを持っているかを確認できます。 ビジュアル状態の概念の詳細については、「 XAML コントロール テンプレート」を参照してください。

スタイル内で設定されている個々のプロパティの値を変更できます。 たとえば、このプロパティがスタイルによって設定されている場合でも、実行時に Template プロパティを設定できます。 または、Setters でコレクションに セッターを追加することもできます。 ただし、読み込まれたオブジェクトによってスタイルが使用されるとすぐに、 Style はシールされていると見なす必要があります。 この状態は、 の IsSealedStyleの値を確認することで検出できます。 スタイルは、表示されている UI ページのオブジェクト ツリーに接続されている読み込まれたオブジェクトによって参照されるとすぐに使用されていると見なされます。 Styleまた、そのスタイルをSetters使用するオブジェクトが Loaded イベントを発生させる場合は、 とその オブジェクトをシールと見なすこともできます。 使用中のスタイルの個々のプロパティ (コレクション内 Setters のプロパティなど) を変更しようとすると、例外がスローされます。

Control から派生したクラスには、スタイルとテンプレート アプリケーションに関して作成者を制御するのに役立つ追加のエントリ ポイントがあります。 FrameworkElement は 、Loaded より前に呼び出される仮想コールバック OnApplyTemplate を定義 します。 から Control 派生したクラスは、このコールバックをオーバーライドして、スタイルが使用される前にテンプレートによって設定されたプロパティ値を調整できます。

実行時にクエリを実行した場合、プロパティは、 Style 適用されたテンプレートまたはアクティブな表示状態から取得されたスタイルを返しません。 プロパティによって Style 明示的に設定されたスタイルのみが返されます。 また、暗黙的なスタイルは返されません。

適用対象