TemplateBindingExtension Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализует расширение разметки, которое поддерживает привязку между значением свойства в шаблоне и значением другого доступного свойства в шаблонном элементе управления.
public ref class TemplateBindingExtension : System::Windows::Markup::MarkupExtension
[System.ComponentModel.TypeConverter(typeof(System.Windows.TemplateBindingExtensionConverter))]
public class TemplateBindingExtension : System.Windows.Markup.MarkupExtension
[System.ComponentModel.TypeConverter(typeof(System.Windows.TemplateBindingExtensionConverter))]
[System.Windows.Markup.MarkupExtensionReturnType(typeof(System.Object))]
public class TemplateBindingExtension : System.Windows.Markup.MarkupExtension
[<System.ComponentModel.TypeConverter(typeof(System.Windows.TemplateBindingExtensionConverter))>]
type TemplateBindingExtension = class
inherit MarkupExtension
[<System.ComponentModel.TypeConverter(typeof(System.Windows.TemplateBindingExtensionConverter))>]
[<System.Windows.Markup.MarkupExtensionReturnType(typeof(System.Object))>]
type TemplateBindingExtension = class
inherit MarkupExtension
Public Class TemplateBindingExtension
Inherits MarkupExtension
- Наследование
- Атрибуты
Примеры
В следующем примере показано, ControlTemplate что определяет горизонтальный ListBox и имеет округленные углы. Указывает TemplateBinding , что BackgroundBorder значение должно быть синхронизировано со значением Background , заданным в элементе ListBox.
TemplateBinding Вы используете в том ControlTemplate случае, если вы хотите предоставить пользователю элемент управления контроль над значениями определенных свойств. Обсуждение этого примера см. в разделе "Стилизация" и "Шаблон".
<Style TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Border CornerRadius="5" Background="{TemplateBinding ListBox.Background}">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsItemsHost="True"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
В следующем примере показан ControlTemplate элемент Label управления. Свойства HorizontalAlignment привязаны к значениям HorizontalContentAlignment и VerticalContentAlignment свойствам Label элемента управления, к которому применяется этот ControlTemplate элемент VerticalAlignment управления.
<Style x:Key="{x:Type Label}"
TargetType="Label">
<Setter Property="HorizontalContentAlignment"
Value="Left" />
<Setter Property="VerticalContentAlignment"
Value="Top" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Border>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="True" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled"
Value="false">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource DisabledForegroundColor}" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Комментарии
Вы используете TemplateBinding шаблон для привязки к значению элемента управления, к который применяется шаблон. А TemplateBinding эффективнее, чем у него Binding меньше возможностей.
TemplateBinding Использование эквивалентно использованию Binding свойства с заданным свойством RelativeSourceRelativeSource.TemplatedParent.
Использование текста XAML
Сведения о XAML см. в разделе "Расширение разметки TemplateBinding".
Конструкторы
| Имя | Описание |
|---|---|
| TemplateBindingExtension() |
Инициализирует новый экземпляр класса TemplateBindingExtension. |
| TemplateBindingExtension(DependencyProperty) |
Инициализирует новый экземпляр TemplateBindingExtension класса с указанным свойством зависимостей, которое является источником привязки. |
Свойства
| Имя | Описание |
|---|---|
| Converter |
Возвращает или задает преобразователь, интерпретируемый между источником и целевым объектом привязки. |
| ConverterParameter |
Возвращает или задает параметр для передачи преобразователю. |
| Property |
Возвращает или задает свойство, к которым привязано. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ProvideValue(IServiceProvider) |
Возвращает объект, который должен быть задан в качестве значения свойства целевого объекта для этого расширения разметки. Для TemplateBindingExtensionэтого используется выражение (TemplateBindingExpression), поддерживающее привязку. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |