TemplateBindingExtension TemplateBindingExtension TemplateBindingExtension TemplateBindingExtension Class

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.Implements a markup extension that supports the binding between the value of a property in a template and the value of some other exposed property on the templated control.

public ref 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
type TemplateBindingExtension = class
    inherit MarkupExtension
Public Class TemplateBindingExtension
Inherits MarkupExtension
Herencia
TemplateBindingExtensionTemplateBindingExtensionTemplateBindingExtensionTemplateBindingExtension
Atributos

Ejemplos

En el ejemplo siguiente se ControlTemplate muestra un que ListBox define un que es horizontal y tiene esquinas redondeadas.The following example shows a ControlTemplate that defines a ListBox that is horizontal and has rounded corners. TemplateBinding Indica que la Background Background de Border se debe sincronizarListBoxcon el valor establecido en.The TemplateBinding indicates that the Background of the Border should be synchronized with the Background value that is set on the ListBox. Se usa TemplateBinding en el ControlTemplate cuando se desea proporcionar al usuario del control el control sobre los valores de ciertas propiedades.You use TemplateBinding in your ControlTemplate when you want to give the user of your control the control over the values of certain properties. Para obtener una explicación de este ejemplo, consulte aplicar estilos y plantillas.For a discussion of this example, see Styling and Templating.

<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 ControlTemplate muestra el Label del control.The following example shows the ControlTemplate of the Label control. Las HorizontalAlignment propiedades VerticalAlignment y se enlazan a los valores de HorizontalContentAlignment Label las VerticalContentAlignment propiedades y del control al que ControlTemplate se aplica este.The HorizontalAlignment and VerticalAlignment properties are bound to the values of the HorizontalContentAlignment and VerticalContentAlignment properties of the Label control that this ControlTemplate is applied to.

<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

Use TemplateBinding en la plantilla para enlazar con un valor en el control al que se aplica la plantilla.You use TemplateBinding in template to bind to a value on the control the template is applied to. Una TemplateBinding es más eficaz que una Binding pero tiene menos funcionalidad.A TemplateBinding is more efficient than a Binding but it has less functionality. El uso TemplateBinding de es equivalente al Binding uso de con RelativeSource la propiedad establecida RelativeSource.TemplatedParenten.Using a TemplateBinding is equivalent to using a Binding with the RelativeSource property set to RelativeSource.TemplatedParent.

Uso de texto XAMLXAML Text Usage

Para XAMLXAML obtener más información, consulte extensión de marcado TemplateBinding.For XAMLXAML information, see TemplateBinding Markup Extension.

Constructores

TemplateBindingExtension() TemplateBindingExtension() TemplateBindingExtension() TemplateBindingExtension()

Inicializa una nueva instancia de la clase TemplateBindingExtension.Initializes a new instance of the TemplateBindingExtension class.

TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty) TemplateBindingExtension(DependencyProperty)

Inicializa una nueva instancia de la clase TemplateBindingExtension con la propiedad de dependencia especificada que es el origen del enlace.Initializes a new instance of the TemplateBindingExtension class with the specified dependency property that is the source of the binding.

Propiedades

Converter Converter Converter Converter

Obtiene o establece el convertidor que interpreta entre el origen y el destino de un enlace.Gets or sets the converter that interprets between source and target of a binding.

ConverterParameter ConverterParameter ConverterParameter ConverterParameter

Obtiene o establece el parámetro que se pasa al convertidor.Gets or sets the parameter to pass to the converter.

Property Property Property Property

Obtiene o establece la propiedad a la que se está enlazando.Gets or sets the property being bound to.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) 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.Returns an object that should be set as the value on the target object's property for this markup extension. Para TemplateBindingExtension, ésta es una expresión (TemplateBindingExpression) que admite el enlace.For TemplateBindingExtension, this is an expression (TemplateBindingExpression) that supports the binding.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a