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 を使用できます。
Setterでは、Value と Target または Property の両方を指定する必要があります。 それ以外の場合は、例外がスローされます (Setter が XAML で作成されるか、コードで変更されたかに応じて、解析例外またはランタイム エラー)。
コードを使用してSetter インスタンスにアクセスする場合、親 Style の IsSealed プロパティの値がtrueされている場合、Setter インスタンスのプロパティの値を変更することはできません。 これは、個々のSetterの IsSealed プロパティによっても報告されます。 ランタイムが UI 要素にスタイルを適用し、UI に表示するときに、これらのプロパティが true に設定されます。 シールされた Setter を変更しようとすると、ランタイム エラーがスローされます。
コンストラクター
| 名前 | 説明 |
|---|---|
| Setter() |
初期の Property または Value を使用せず、Setter クラスの新しいインスタンスを初期化します。 |
| Setter(DependencyProperty, Object) |
初期の Property および Value 情報を使用して、Setter クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Dispatcher |
Windows App 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) |