Setter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 .../>
- 継承
- 属性
例
この例では、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.Left に Setter を使用するには、この 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 を使用できます。
に Value と Target または Property の両方を指定する Setter
必要があります。 それ以外の場合は、例外がスローされます (Setter が XAML で作成されるか、コードで変更されたかに応じて、解析例外またはランタイム エラー)。
コードを使用してインスタンスにSetter
アクセスする場合、親 Styletrue
の IsSealed プロパティSetter
の値が の場合、インスタンスのプロパティの値を変更することはできません。 これは、個々Setter
の の IsSealed プロパティによっても報告されます。 ランタイムが UI 要素にスタイルを true
適用し、UI に表示する場合、システムはこれらのプロパティを に設定します。 シール Setter
を変更しようとすると、ランタイム エラーがスローされます。
移行に関する注意事項
- Windows Presentation Foundation (WPF) と Microsoft Silverlight では、Binding 式を使用してスタイル内の の Value を
Setter
指定する機能がサポートされました。 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 アプリで を返します |
DispatcherQueue |
このオブジェクトが |
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) |