Setter クラス

定義

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

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

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

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

移行に関する注意事項

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

コンストラクター

Setter()

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

Setter(DependencyProperty, Object)

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

プロパティ

Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが 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)

適用対象

こちらもご覧ください