TemplateBindingExtension Classe

Definição

Implementa uma extensão de marcação que suporta a ligação entre o valor de uma propriedade num template e o valor de outra propriedade exposta no controlo templateado.

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
Herança
TemplateBindingExtension
Atributos

Exemplos

O exemplo seguinte mostra um ControlTemplate que define um ListBox que é horizontal e tem cantos arredondados. Indica TemplateBinding que o Background de deve Border estar sincronizado com o Background valor que está definido em .ListBox Utiliza-se TemplateBinding quando ControlTemplate quer dar ao utilizador do seu controlo o controlo sobre os valores de certas propriedades. Para uma discussão deste exemplo, veja 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>

O exemplo seguinte mostra o ControlTemplate do Label controlo. As HorizontalAlignment propriedades e VerticalAlignment estão ligadas aos valores das HorizontalContentAlignment propriedades e VerticalContentAlignment do Label controlo ao qual isto ControlTemplate é aplicado.

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

Observações

Usas TemplateBinding um template para ligar a um valor no controlo ao qual o template é aplicado. A TemplateBinding é mais eficiente do que o a Binding , mas tem menos funcionalidade. Usar a TemplateBinding é equivalente a usar a Binding com a RelativeSource propriedade definida em RelativeSource.TemplatedParent.

Utilização de Texto XAML

Para informações sobre XAML, consulte TemplateBinding Markup Extension.

Construtores

Name Description
TemplateBindingExtension()

Inicializa uma nova instância da TemplateBindingExtension classe.

TemplateBindingExtension(DependencyProperty)

Inicializa uma nova instância da TemplateBindingExtension classe com a propriedade de dependência especificada que é a fonte da ligação.

Propriedades

Name Description
Converter

Obtém ou define o conversor que interpreta entre a fonte e o destino de uma ligação.

ConverterParameter

Obtém ou define o parâmetro a passar para o conversor.

Property

Obtém ou define a propriedade a que está vinculada.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ProvideValue(IServiceProvider)

Devolve um objeto que deve ser definido como valor na propriedade do objeto alvo para esta extensão de marcação. Para TemplateBindingExtension, esta é uma expressão (TemplateBindingExpression) que suporta a ligação.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a