Compartilhar via


TemplateBindingExtension Classe

Definição

Implementa uma extensão de marcação que dá suporte à associação entre o valor de uma propriedade em um modelo e o valor de outra propriedade exposta no controle modelo.

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 a seguir mostra um ControlTemplate que define um ListBox que é horizontal e tem cantos arredondados. O TemplateBinding indica que o Background do Border deve ser sincronizado com o Background valor definido no ListBox. Você usa TemplateBinding em seu ControlTemplate quando deseja dar ao usuário de seu controle o controle sobre os valores de determinadas propriedades. Para obter uma discussão sobre este exemplo, consulte Estilo e modelagem.

<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 a seguir mostra o ControlTemplate do Label controle . As HorizontalAlignment propriedades e VerticalAlignment estão associadas aos valores das HorizontalContentAlignment propriedades e VerticalContentAlignment do Label controle ao qual isso 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>

Comentários

Você usa TemplateBinding no modelo para associar a um valor no controle ao qual o modelo é aplicado. Um TemplateBinding é mais eficiente do que um Binding , mas tem menos funcionalidade. Usar um TemplateBinding é equivalente a usar um Binding com a RelativeSource propriedade definida RelativeSource.TemplatedParentcomo .

Uso de texto XAML

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

Construtores

TemplateBindingExtension()

Inicializa uma nova instância da classe TemplateBindingExtension.

TemplateBindingExtension(DependencyProperty)

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

Propriedades

Converter

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

ConverterParameter

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

Property

Obtém ou define a propriedade à qual associar.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ProvideValue(IServiceProvider)

Retorna um objeto que deve ser definido como o valor na propriedade do objeto de destino para esta extensão de marcação. Para TemplateBindingExtension, esta é uma expressão (TemplateBindingExpression) é compatível com a associação.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a