Setter クラス

定義

Style または VisualState のプロパティに値を適用します。

public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.ISetterFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.ISetterFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
継承
Object Platform::Object IInspectable DependencyObject SetterBase Setter
属性

この例では、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>

次の使用例は、VisualState.Setters プロパティ内で複数Setterのステートメントを使用して、VisualState を適用するときにさまざまな要素に個別のプロパティ値の変更を適用する方法を示しています (アニメーションなし)。

<Page>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="NarrowState">
                    <VisualState.Setters>
                        <Setter Target="myPanel.Orientation" Value="Vertical"/>
                        <Setter Target="myPanel.Width" Value="380"/>
                        <Setter Target="myTextBlock.MaxLines" Value="3"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <StackPanel x:Name="myPanel" Orientation="Horizontal">
            <TextBlock x:Name="myTextBlock" MaxLines="5" Style="{ThemeResource BodyTextBlockStyle}"/>
        </StackPanel>
    </Grid>
</Page>

AttachedPropertyProvider で添付プロパティ名を指定することで、添付プロパティ値にセッターを適用することもできます。PropertyName フォーム。 たとえば、添付プロパティ Canvas.LeftSetter を使用するには、この XAML を使用します。

<Setter Property="Canvas.Left" Value="100"/>

を使用して Target添付プロパティの値を更新するには、添付プロパティのパスをかっこ内に配置します。 この例では、"TitleTextBlock" という名前の要素の値を更新 RelativePanel.AlignRightWithPanel する方法を示します。

<RelativePanel>
    <TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>

...

<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>

注釈

ステートメントを使用して SetterStyle または VisualState 内のプロパティ値を設定します。

Setter.Target プロパティは、Style または VisualState で使用できますが、さまざまな方法で使用できます。 で Style使用する場合、変更する必要があるプロパティを直接指定できます。 で VisualState使用する場合、プロパティには TargetTargetPropertyPath を指定する必要があります (ターゲット要素とプロパティを明示的に指定した点線の構文)。

Setter.Property プロパティは、VisualState ではなく Style でのみ使用できます。 Windows 10 以降では、 ではなくSetter.Property、どこでも Setter.Target を使用できます。

ValueTarget または Property の両方を指定する Setter必要があります。 それ以外の場合は、例外がスローされます (Setter が XAML で作成されるか、コードで変更されたかに応じて、解析例外またはランタイム エラー)。

コードを使用してインスタンスにSetterアクセスする場合、親 StyletrueIsSealed プロパティSetterの値が の場合、インスタンスのプロパティの値を変更することはできません。 これは、個々Setterの の IsSealed プロパティによっても報告されます。 ランタイムが UI 要素にスタイルを true 適用し、UI に表示する場合、システムはこれらのプロパティを に設定します。 シール Setter を変更しようとすると、ランタイム エラーがスローされます。

移行に関する注意事項

  • Windows Presentation Foundation (WPF) と Microsoft Silverlight では、Binding 式を使用してスタイル内の の ValueSetter指定する機能がサポートされました。 Windows ランタイムは Setter.Value の使用をBindingサポートしていません (はBinding評価されません。Setter効果はありません。エラーは発生しませんが、目的の結果も得られません)。 XAML スタイルを WPF または Microsoft Silverlight XAML から変換する場合は、式の使用法をBinding値を設定する文字列またはオブジェクトに置き換えるか、取得した値ではなくBinding共有 {StaticResource} マークアップ拡張値として値をリファクタリングします。

コンストラクター

Setter()

初期の Property または Value を使用せず、Setter クラスの新しいインスタンスを初期化します

Setter(DependencyProperty, Object)

初期の Property および Value 情報を使用して、Setter クラスの新しいインスタンス初期化します。

プロパティ

Dispatcher

常に Windows アプリ SDK アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の にアクセス DependencyObject できる機能を表します。

(継承元 DependencyObject)
IsSealed

このオブジェクトが変更できない状態にあるかどうかを示す値を取得します。

(継承元 SetterBase)
Property

Value を適用するプロパティを取得または設定します。

Target

Value を適用するターゲット要素のプロパティのパスを取得または設定 します

Value

Setter で指定されたプロパティに適用する値を取得または設定します。

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください