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 プロパティの値が の場合、Setter インスタンスのプロパティの値をtrue
変更することはできません。 これは、個々の Setter の IsSealed プロパティによっても報告されます。 ランタイムが UI 要素にスタイルを true
適用し、UI に表示する場合、システムはこれらのプロパティを に設定します。 封印された セッター を変更しようとすると、ランタイム エラーがスローされます。
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」を参照してください。