共用方式為


TemplateBindingExtension 類別

定義

實作一個標記擴充,支援模板中屬性值與模板控制項中其他暴露屬性值之間的綁定。

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
繼承
TemplateBindingExtension
屬性

範例

以下範例顯示定義 ControlTemplate 了水平 ListBox 且角為圓角的 。 表示 TemplateBindingBackgroundBorder 應該與 Background 設定在 ListBox的值同步。 當你想讓使用者控制某些屬性的值時,你會用TemplateBindingControlTemplate它來控制。 關於此範例的討論,請參見「樣式與模板」。

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

以下範例展示了控制的 LabelControlTemplate HorizontalAlignmentVerticalAlignment 屬性綁定於HorizontalContentAlignment該控制ControlTemplate項的 和 VerticalContentAlignment 屬性Label值。

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

備註

你用 TemplateBinding in template 綁定該範本所套用的控制項上的值。 A TemplateBinding 比 A Binding 更有效率,但功能較少。 使用 a TemplateBinding 等同於使用 Binding a 且性質 RelativeSource 設為 RelativeSource.TemplatedParent

XAML 文字使用

關於 XAML 的相關資訊,請參見 TemplateBinding Markup 擴充功能

建構函式

名稱 Description
TemplateBindingExtension()

初始化 TemplateBindingExtension 類別的新執行個體。

TemplateBindingExtension(DependencyProperty)

初始化一個具有指定依賴屬性的類別新實例 TemplateBindingExtension ,該類別是綁定的來源。

屬性

名稱 Description
Converter

取得或設定轉換器,負責在綁定的來源與目標之間進行解讀。

ConverterParameter

取得或設定參數傳送給轉換器。

Property

取得或設定綁定的屬性。

方法

名稱 Description
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ProvideValue(IServiceProvider)

回傳一個物件,該物件應該設定為目標物件屬性中此標記擴充的值。 對於 TemplateBindingExtension,這是一個支持綁定的表達TemplateBindingExpression式()。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於