次の方法で共有


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"/>

注釈

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

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

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

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

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

コンストラクター

名前 説明
Setter()

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

Setter(DependencyProperty, Object)

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

プロパティ

名前 説明
Dispatcher

Windows App 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)

適用対象

こちらもご覧ください