Compartir a través de


TemplateBindingExtension Clase

Definición

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
TemplateBindingExtension
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)

Se aplica a