Style クラス

定義

型のインスタンスの間でプロパティ、リソース、およびイベント ハンドラーを共有できるようにします。

public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope
public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope, System::Windows::Markup::IQueryAmbient
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope, System.Windows.Markup.IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
    interface IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    interface IQueryAmbient
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope, IQueryAmbient
継承
属性
実装

次の例は、 の プロパティに影響を与 Background えるスタイル宣言を Control示しています。

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>

上記のスタイルを適用するには、次の操作を行います。

<Label Content="Yellow Background" Style="{StaticResource Style1}" />

プロパティを使用して、特定の型のすべての要素にスタイルを TargetType 適用することもできます。 スタイルにターゲットの型を追加すると、構文で設定 ClassName.PropertyName しているプロパティを完全に修飾する必要がなくなります。 次の例では、すべての TextBlock 要素に適用されるスタイルを定義します。

<Style TargetType="{x:Type TextBlock}">
  <Setter Property="FontFamily" Value="Segoe Black" />
  <Setter Property="HorizontalAlignment" Value="Center" />
  <Setter Property="FontSize" Value="12pt" />
  <Setter Property="Foreground" Value="#777777" />
</Style>

注意

多くの WPF コントロールは他の WPF コントロールの組み合わせで構成されているため、型のすべてのコントロールに適用されるスタイルを作成すると、大きな影響を与える可能性があります。 たとえば、 内のCanvasコントロールをTextBlock対象とするスタイルを作成した場合、 が などの別のコントロールの一部である場合TextBlockでも、スタイルはキャンバス内のすべてのTextBlockコントロールにListBox適用されます。

定義されたスタイルを拡張または継承する方法については、ページを BasedOn 参照してください。

注釈

または FrameworkContentElementからFrameworkElement派生する任意の要素に を設定Styleできます。 スタイルは、 セクション内のリソースとして最も一般的に Resources 宣言されます。 スタイルはリソースであるため、すべてのリソースに適用されるのと同じスコープ規則に従うため、スタイルを宣言する場所は適用できる場所に影響します。 たとえば、アプリケーション定義 XAML ファイルのルート要素でスタイルを宣言した場合、スタイルはアプリケーション内の任意の場所で使用できます。 ナビゲーション アプリケーションを作成し、アプリケーションのいずれかの XAML ファイルでスタイルを宣言する場合、その XAML ファイルでのみスタイルを使用できます。 リソースのスコープ規則の詳細については、「 XAML リソース」を参照してください。

スタイル宣言は、 Style 1 つ以上 Setter のオブジェクトのコレクションを含む オブジェクトで構成されます。 それぞれ Setter と でPropertyValue構成されます。 プロパティは、スタイルが適用される要素のプロパティの名前です。 スタイルがリソースとして宣言されると、他のリソースと同様に参照できるようになります。

注意

同じ Property プロパティ値を持つセッター コレクションに複数のセッターがある場合は、最後に宣言されたセッターが使用されます。 同様に、スタイルと要素で同じプロパティの値を直接設定した場合、要素に設定された値が直接優先されます。

Windows Presentation Foundation (WPF) のスタイルとテンプレート モデルを使用すると、外観のメンテナンスと共有、およびプレゼンテーションとロジックの分離が可能になります。 スタイルとテンプレート モデルには、UI をカスタマイズできる一連の機能が含まれています。 この一連の機能には、 Style クラスと次のものが含まれます。

詳しくは、「 スタイルとテンプレート」をご覧ください。

コンストラクター

Style()

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

Style(Type)

指定した Style で使用する Type クラスの新しいインスタンスを初期化します。

Style(Type, Style)

指定した Style で使用する、指定した Type に基づいた Style クラスの新しいインスタンスを初期化します。

プロパティ

BasedOn

現在のスタイルの基になる定義済みのスタイルを取得または設定します。

Dispatcher

この Dispatcher が関連付けられている DispatcherObject を取得します。

(継承元 DispatcherObject)
IsSealed

スタイルが読み取り専用で変更できないかどうかを示す値を取得します。

Resources

このスタイルのスコープ内で使用できるリソースのコレクションを取得または設定します。

Setters

Setter オブジェクトと EventSetter オブジェクトのコレクションを取得します。

TargetType

このスタイルの対象となる型を取得または設定します。

Triggers

指定した条件に基づいてプロパティ値を適用する、TriggerBase オブジェクトのコレクションを取得します。

メソッド

CheckAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。

(継承元 DispatcherObject)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

この Style のハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
RegisterName(String, Object)

現在の名前スコープに新しい名前とオブジェクトのペアを登録します。

Seal()

このスタイルとすべてのファクトリおよびトリガーを変更できないようにロックします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
UnregisterName(String)

名前スコープから名前オブジェクトのマッピングを削除します。

VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)

明示的なインターフェイスの実装

IAddChild.AddChild(Object)

子オブジェクトを追加します。

IAddChild.AddText(String)

オブジェクトにノードのテキスト コンテンツを追加します。

INameScope.FindName(String)

指定された識別名を持つオブジェクトを返します。

IQueryAmbient.IsAmbientPropertyAvailable(String)

指定されたアンビエント プロパティを現在のスコープで使用できるかどうかを照会します。

適用対象

こちらもご覧ください