Setter.Property Свойство

Определение

Возвращает или задает свойство, к котором применяется значение .

public:
 property DependencyProperty ^ Property { DependencyProperty ^ get(); void set(DependencyProperty ^ value); };
DependencyProperty Property();

void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>

Значение свойства

Свойство DependencyProperty, к которому будет применено значение. Значение по умолчанию — NULL.

Примеры

В этом примере показано, как использовать операторы 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>

Вы также можете применить методы задания к значениям присоединенных свойств, указав имя присоединенного свойства в AttachedPropertyProvider. Форма PropertyName . Например, чтобы использовать метод setter для присоединенного свойства Canvas.Left, используйте this XAML.

<Setter Property="Canvas.Left" Value="100"/>

Комментарии

Необходимо указать свойства Property и Value в методе задания. В противном случае возникает исключение (исключение синтаксического анализа или ошибка среды выполнения в зависимости от того, создан метод задания в XAML или изменен в коде).

Если вы обращаетесь к экземпляру Setter с помощью кода, нельзя изменить значение какого-либо свойства экземпляра Setter , если свойство IsSealed родительского style имеет значение true. Это также сообщается свойством IsSealed в отдельном setter. Система устанавливает для этих свойств значение true , когда среда выполнения применяет стили к элементам пользовательского интерфейса и отображает их в пользовательском интерфейсе. Попытка изменить запечатанный метод setter вызывает ошибку среды выполнения.

Для оформления присоединенного свойства можно использовать метод setter . В этом случае имя свойства зависимостей — это полное имя в XAML, которое также называет тип определения присоединенного свойства. Например, <Setter Property="AutomationProperties.LiveSetting" Value="Polite" /> можно использовать для задания значения присоединенного свойства AutomationProperties.LiveSetting в стиле для любого элемента управления или элемента пользовательского интерфейса.

Примечание

Средство синтаксического анализа XAML также принимает имена свойств зависимостей, которые включают квалифицирующим классом. Например, средство синтаксического анализа интерпретирует "Button.Background" или "Control.Background" как ссылку на свойство Background в стиле для кнопки. Квалификация по классам не требуется, хотя и приводит к потенциально запутанной разметке. При переносе XAML с других платформ вы можете столкнуться с использованием полных имен свойств или использовать их.

Определение свойств зависимостей

Как уже отмечалось, метод задания можно использовать только для настройки свойства с помощью стиля, если рассматриваемое свойство является свойством зависимостей. Свойства пользовательского интерфейса, в которых существует сценарий применения стиля, почти всегда реализуются в качестве свойств зависимостей среда выполнения Windows, а настраиваемые свойства, которые не являются свойством зависимостей для элементов пользовательского интерфейса, довольно редки. Если вы хотите убедиться, что свойство среда выполнения Windows является свойством зависимостей, проверка списки элементов для типа, который изначально определяет свойство. Если свойство фактически является свойством зависимостей, идентификатор свойства зависимостей будет существовать и в этом классе, и этот идентификатор имеет то же имя, что и само свойство, но с добавленным суффиксом Property . Этот идентификатор свойства зависимостей является статическим свойством только для чтения, которое полезно в некоторых сценариях свойств зависимостей с помощью кода. Например, такое значение идентификатора можно использовать в коде для настройки существующего значения Setter.Property, если родительский стиль еще не запечатан.

Использование метода задания для настраиваемого свойства

Для собственных настраиваемых свойств следует объявить свойство как свойство зависимостей, если вы хотите поддерживать стили, а также для других сценариев, таких как привязка данных или анимация. В этом случае настраиваемое свойство также поддерживает стили для любого стиля с типом TargetType , который ссылается на пользовательский тип. Дополнительные сведения см. в разделе Настраиваемые свойства зависимостей или TargetType.

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