Setter.Property プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public:
property DependencyProperty ^ Property { DependencyProperty ^ get(); void set(DependencyProperty ^ value); };
DependencyProperty Property();
void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>
プロパティ値
Value が適用される DependencyProperty。 既定値は null です。
例
この例では、 TextBlock 要素のスタイルで Setter ステートメントを使用する方法を示します。
<StackPanel>
<StackPanel.Resources>
<!-- Create a Style for a TextBlock to specify that the
Foreground equals Navy, FontSize equals 14, and
VerticalAlignment equals Bottom. -->
<Style TargetType="TextBlock" x:Key="TextBlockStyle">
<Setter Property="Foreground" Value="Navy"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VerticalAlignment" Value="Bottom"/>
</Style>
</StackPanel.Resources>
<!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
<TextBlock Style="{StaticResource TextBlockStyle}" Text="Hello"/>
<TextBlock Style="{StaticResource TextBlockStyle}" Text="World"/>
</StackPanel>
AttachedPropertyProvider で添付プロパティ名を指定することで、添付プロパティ値にセッターを適用することもできます。PropertyName フォーム。 たとえば、添付プロパティ Canvas.Left に Setter を使用するには、この XAML を使用します。
<Setter Property="Canvas.Left" Value="100"/>
注釈
Setter で Property プロパティと Value プロパティの両方を指定する必要があります。 それ以外の場合は例外がスローされます ( Setter が XAML で作成されるか、コードで変更されているかに応じて、解析例外またはランタイム エラー)。
コードを使用して Setter インスタンスにアクセスする場合、親 Style の IsSealed プロパティの値が true の場合、Setter インスタンスのプロパティの値を変更することはできません。 これは、個々の Setter の IsSealed プロパティによっても報告されます。 ランタイムが UI 要素にスタイルを適用し、UI に表示する場合、システムはこれらのプロパティを true に設定します。 シールされた Setter を変更しようとすると、ランタイム エラーがスローされます。
Setter を使用して、添付プロパティのスタイルを設定できます。 この場合、依存関係プロパティ名は XAML の修飾名であり、添付プロパティの定義型にも名前を付けます。 たとえば、 を使用して、 <Setter Property="AutomationProperties.LiveSetting" Value="Polite" />
任意のコントロールまたは UI 要素のスタイル内で AutomationProperties.LiveSetting 添付プロパティ値を設定できます。
注意
XAML パーサーは、修飾クラスを含む依存関係プロパティ名も受け入れます。 たとえば、パーサーは "Button.Background" または "Control.Background" を、Button のスタイルの Background プロパティへの参照として解釈します。 ただし、クラスによる修飾は必要ありません。その結果、マークアップが混乱する可能性があります。 他のプラットフォームから XAML を移行する場合は、修飾されたプロパティ名の使用法が発生したり使用されたりする可能性があります。
依存関係プロパティの識別
説明したように、 Setter を使用してスタイルを使用してプロパティを調整できるのは、問題のプロパティが依存関係プロパティの場合のみです。 スタイルを適用するシナリオがある UI プロパティは、ほとんどの場合、Windows ランタイムによって依存関係プロパティとして実装され、UI 要素の依存関係プロパティではない設定可能なプロパティはまれです。 Windows ランタイム プロパティが依存関係プロパティであることを確認する場合は、プロパティを最初に定義した型のメンバー リストをチェックします。 プロパティが実際には依存関係プロパティである場合、依存関係プロパティ識別子もそのクラスに存在し、その識別子はプロパティ自体と同じ名前を持ちますが、サフィックス Property が 追加されます。 この依存関係プロパティ識別子は静的な読み取り専用プロパティであり、コードを通じて一部の依存関係プロパティのシナリオで役立ちます。 たとえば、このような識別子値をコードで使用して、親スタイルがまだシールされていない限り、既存の Setter.Property 値を調整できます。
カスタム プロパティに Setter を使用する
独自のカスタム プロパティの場合は、スタイルをサポートする場合は、プロパティを依存関係プロパティとして宣言する必要があります。また、データ バインディングやアニメーションなどの他のシナリオでも同様です。 これを行う場合、カスタム プロパティは、カスタム型を参照する TargetType を持つ任意のスタイルのスタイル設定でもサポートされます。 詳細については、「 カスタム依存関係プロパティ 」または「 TargetType」を参照してください。