TemplateBindingExtension 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
实现一个标记扩展,该标记扩展支持在模板中属性的值和模板化控件上某个其他公开的属性的值之间进行绑定。
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 。 Border Background指示TemplateBinding
应将其与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 。 和HorizontalAlignmentVerticalAlignment属性绑定到应用于的ControlTemplate控件的值HorizontalContentAlignment和VerticalContentAlignment属性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) |