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 .../>
Наследование
Object Platform::Object IInspectable DependencyObject 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

Всегда возвращается null в приложении пакета SDK для приложений windows. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

Возвращает, DispatcherQueue с которым связан этот объект. Представляет DispatcherQueue собой объект, который может получить доступ к DependencyObject потоку пользовательского интерфейса, даже если код инициируется потоком, отличным от пользовательского интерфейса.

(Унаследовано от DependencyObject)
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)

Применяется к

См. также раздел