言語

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

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

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

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

適用対象