TemplateBindingExtension TemplateBindingExtension TemplateBindingExtension TemplateBindingExtension Class

Определение

Реализует расширение разметки, поддерживающее привязку между значением свойства в шаблоне и значением какого-либо другого открытого свойства в созданном на основе шаблона элементе управления.Implements a markup extension that supports the binding between the value of a property in a template and the value of some other exposed property on the templated control.

public ref 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
type TemplateBindingExtension = class
    inherit MarkupExtension
Public Class TemplateBindingExtension
Inherits MarkupExtension
Наследование
TemplateBindingExtensionTemplateBindingExtensionTemplateBindingExtensionTemplateBindingExtension
Атрибуты

Примеры

В следующем примере показан ControlTemplate , определяющий ListBox , расположен горизонтально и скругленные углы.The following example shows a ControlTemplate that defines a ListBox that is horizontal and has rounded corners. TemplateBinding Указывает, что Background из Border должны быть синхронизированы с Background значение, заданное на ListBox.The TemplateBinding indicates that the Background of the Border should be synchronized with the Background value that is set on the ListBox. Использовании TemplateBinding в вашей ControlTemplate Если вы хотите предоставить пользователю элемента управления контроль над значения определенных свойств.You use TemplateBinding in your ControlTemplate when you want to give the user of your control the control over the values of certain properties. Описание этого примера, см. в разделе Стилизация и использование шаблонов.For a discussion of this example, see Styling and Templating.

<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 элемента управления.The following example shows the ControlTemplate of the Label control. HorizontalAlignment И VerticalAlignment свойства привязаны к значениям HorizontalContentAlignment и VerticalContentAlignment свойства Label управлять этим ControlTemplate применяется к.The HorizontalAlignment and VerticalAlignment properties are bound to the values of the HorizontalContentAlignment and VerticalContentAlignment properties of the Label control that this ControlTemplate is applied to.

<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 в шаблоне для привязки к значению элемента управления, к которой применяется шаблон.You use TemplateBinding in template to bind to a value on the control the template is applied to. Объект TemplateBinding более эффективно, чем Binding , но его с меньшим количеством функций.A TemplateBinding is more efficient than a Binding but it has less functionality. С помощью TemplateBinding равнозначно использованию Binding с RelativeSource свойство значение RelativeSource.TemplatedParent.Using a TemplateBinding is equivalent to using a Binding with the RelativeSource property set to RelativeSource.TemplatedParent.

Использование текста XAMLXAML Text Usage

Для XAMLXAML сведения см. в разделе расширения разметки TemplateBinding.For XAMLXAML information, see TemplateBinding Markup Extension.

Конструкторы

TemplateBindingExtension() TemplateBindingExtension() TemplateBindingExtension() TemplateBindingExtension()

Инициализирует новый экземпляр класса TemplateBindingExtension.Initializes a new instance of the TemplateBindingExtension class.

TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty)

Инициализирует новый экземпляр класса TemplateBindingExtension с заданным свойством зависимостей, являющимся источником привязки.Initializes a new instance of the TemplateBindingExtension class with the specified dependency property that is the source of the binding.

Свойства

Converter Converter Converter Converter

Получает или задает преобразователь, выполняющий интерпретацию между источником и целью привязки.Gets or sets the converter that interprets between source and target of a binding.

ConverterParameter ConverterParameter ConverterParameter ConverterParameter

Получает или задает параметр для передачи преобразователю.Gets or sets the parameter to pass to the converter.

Property Property Property Property

Получает или задает свойство, к которому выполняется привязка.Gets or sets the property being bound to.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider)

Возвращает объект, который следует задать в качестве значения свойства целевого объекта для данного расширения разметки.Returns an object that should be set as the value on the target object's property for this markup extension. Для TemplateBindingExtension это выражение (TemplateBindingExpression), которое поддерживает привязку.For TemplateBindingExtension, this is an expression (TemplateBindingExpression) that supports the binding.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

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