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
, что Background объект Border должен быть синхронизирован со значением 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 VerticalAlignment привязаны к значениям HorizontalContentAlignment и VerticalContentAlignment свойствам Label элемента управления, к которому применяется этот ControlTemplate элемент управления.
<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
в шаблоне для привязки к значению элемента управления, к который применяется шаблон. A TemplateBinding
является более эффективным, чем a, Binding но он имеет меньше функциональных возможностей. Использование a TemplateBinding
эквивалентно использованию Binding свойства с заданным RelativeSource свойством RelativeSource.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) |