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 定义水平和圆角的一个 ListBoxBorder Background指示TemplateBinding应将其与Background设置的值ListBox同步。 当想要为控件的用户提供对某些属性的值的控件时,可以使用TemplateBindingControlTemplate该控件。 有关此示例的讨论,请参阅 样式设置和模板化

<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 。 和HorizontalAlignmentVerticalAlignment属性绑定到应用于的ControlTemplate控件的值HorizontalContentAlignmentVerticalContentAlignment属性Label

<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 比一个 Binding 更高效,但它的功能更少。 使用 a TemplateBinding 等效于将BindingRelativeSource属性设置为 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)

适用于