次の方法で共有


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

注釈

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

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

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

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

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

適用対象