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 , что 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)

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