Setter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Применяет значение к свойству в стиле или 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 .../>
- Наследование
- Атрибуты
Примеры
В этом примере показано, как использовать Setter инструкции в стиле элементов TextBlock .
<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>
В этом примере показано, как использовать несколько Setter инструкций в свойстве VisualState.Setters для применения дискретных значений свойств для различных элементов (без анимаций) при применении 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>
Можно также применить методы задания к значениям присоединенного свойства, указав имя присоединенного свойства в ПрисоединенномPropertyProvider. Форма PropertyName . Например, чтобы использовать метод Setter для присоединенного свойства Canvas.Left, используйте этот XAML.
<Setter Property="Canvas.Left" Value="100"/>
Чтобы обновить значение присоединенного свойства с помощью Target, поместите путь присоединенного свойства внутри круглых скобок. В этом примере показано, как обновить RelativePanel.AlignRightWithPanel значение элемента с именем TitleTextBlock.
<RelativePanel>
<TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>
...
<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>
Комментарии
Используйте Setter инструкции для задания значения свойства в стиле или VisualState.
Свойство Setter.Target можно использовать как в стиле , так и в VisualState, но по-разному. При использовании в объекте Styleсвойство, которое необходимо изменить, можно указать напрямую. При использовании VisualStateTarget свойство должно быть задано TargetPropertyPath (синтаксис с точками с целевым элементом и свойством, явно заданным).
Свойство Setter.Property можно использовать только в стиле, а не в VisualState. Начиная с Windows 10, вместо него можно использовать Setter.TargetSetter.Property.
Необходимо указать значение, а также целевой объект или свойствоSetter. В противном случае возникает исключение (исключение синтаксического анализа или ошибка среды выполнения в зависимости от того, создан ли метод Setter в XAML или изменен в коде).
Если вы обращаетесь к Setter экземпляру с помощью кода, нельзя изменить значение любого свойства Setter экземпляра, если значение свойства IsSealed в родительском стилеtrue. Это также сообщается свойством IsSealed для отдельного человека Setter. Система задает эти свойства, true когда среда выполнения применяет стили к элементам пользовательского интерфейса и отображает их в пользовательском интерфейсе. Попытка изменить запечатанный Setter вызывает ошибку среды выполнения.
Конструкторы
| Имя | Описание |
|---|---|
| Setter() |
Инициализирует новый экземпляр класса Setter без начального свойства или значения. |
| Setter(DependencyProperty, Object) |
Инициализирует новый экземпляр класса Setter с начальными сведениями о свойстве и значении . |
Свойства
| Имя | Описание |
|---|---|
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| IsSealed |
Возвращает значение, указывающее, находится ли этот объект в неизменяемом состоянии. (Унаследовано от SetterBase) |
| Property |
Возвращает или задает свойство для применения значения . |
| Target |
Возвращает или задает путь к свойству целевого элемента, к которому применяется значение . |
| Value |
Возвращает или задает значение для применения к свойству, указанному методом Setter. |
Методы
| Имя | Описание |
|---|---|
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое будет применяться в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомлений для прослушивания изменений в определенном экземпляре DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей в DependencyObject. (Унаследовано от DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменении, которое ранее было зарегистрировано путем вызова RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |