Поделиться через


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
Наследование
TemplateBindingExtension
Атрибуты

Примеры

В следующем примере показано, 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)

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