Compartir por


TemplateBindingExtension Clase

Definición

Implementa una extensión de marcado que admite el enlace entre el valor de una propiedad de 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
TemplateBindingExtension
Atributos

Ejemplos

En el ejemplo siguiente se muestra un ControlTemplate 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 el control sobre los valores de determinadas propiedades. Para obtener una explicación de este ejemplo, vea Aplicar 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 ControlTemplateLabel del control . Las HorizontalAlignment propiedades y VerticalAlignment están enlazadas a los valores de las HorizontalContentAlignment propiedades y VerticalContentAlignment del Label control al que se aplica.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 al uso de con Binding la RelativeSource propiedad establecida RelativeSource.TemplatedParenten .

Uso de texto XAML

Para obtener información xaml, consulta TemplateBinding Markup Extension.

Constructores

Nombre Description
TemplateBindingExtension()

Inicializa una nueva instancia de la clase TemplateBindingExtension.

TemplateBindingExtension(DependencyProperty)

Inicializa una nueva instancia de la TemplateBindingExtension clase con la propiedad de dependencia especificada que es el origen del enlace.

Propiedades

Nombre Description
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 va a pasar al convertidor.

Property

Obtiene o establece la propiedad a la que se enlaza.

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ProvideValue(IServiceProvider)

Devuelve un objeto que se debe establecer como valor en la propiedad del objeto de destino para esta extensión de marcado. Para TemplateBindingExtension, se trata de una expresión (TemplateBindingExpression) que admite el enlace.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a