TemplateBindingExtension Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Implementa una extensión de marcado que admite el enlace entre el valor de una propiedad en una plantilla y el valor de alguna otra propiedad expuesta en el control con plantilla.
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
- Herencia
- Atributos
Ejemplos
En el ejemplo siguiente se muestra un ControlTemplate objeto que define un ListBox que es horizontal y tiene esquinas redondeadas. TemplateBinding
indica que el Background de Border debe sincronizarse con el Background valor establecido en .ListBox Se usa TemplateBinding
en ControlTemplate cuando se quiere conceder al usuario del control el control sobre los valores de determinadas propiedades. Para obtener una explicación de este ejemplo, vea Aplicación de estilos y plantillas.
<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>
En el ejemplo siguiente se muestra el ControlTemplate Label del control . Las HorizontalAlignment propiedades y VerticalAlignment se enlazan a los valores de las HorizontalContentAlignment propiedades y VerticalContentAlignment del Label control al que se aplica esto 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>
Comentarios
Se usa TemplateBinding
en la plantilla para enlazar a un valor en el control al que se aplica la plantilla. Un TemplateBinding
es más eficaz que un , Binding pero tiene menos funcionalidad. El uso de es TemplateBinding
equivalente a usar un Binding con la RelativeSource propiedad establecida en RelativeSource.TemplatedParent.
Uso de texto XAML
Para obtener información de XAML, consulta TemplateBinding Markup Extension.
Constructores
TemplateBindingExtension() |
Inicializa una nueva instancia de la clase TemplateBindingExtension. |
TemplateBindingExtension(DependencyProperty) |
Inicializa una nueva instancia de la clase TemplateBindingExtension con la propiedad de dependencia especificada que es el origen del enlace. |
Propiedades
Converter |
Obtiene o establece el convertidor que interpreta entre el origen y el destino de un enlace. |
ConverterParameter |
Obtiene o establece el parámetro que se pasa al convertidor. |
Property |
Obtiene o establece la propiedad a la que se está enlazando. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ProvideValue(IServiceProvider) |
Devuelve un objeto que se debe establecer como el valor en la propiedad del objeto de destino para esta extensión de marcado. Para TemplateBindingExtension, ésta es una expresión (TemplateBindingExpression) que admite el enlace. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |