TemplateBindingExtension 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
實作一個標記擴充,支援模板中屬性值與模板控制項中其他暴露屬性值之間的綁定。
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
- 繼承
- 屬性
範例
以下範例顯示定義 ControlTemplate 了水平 ListBox 且角為圓角的 。 表示 TemplateBindingBackground 的 Border 應該與 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>
以下範例展示了控制的 Label 。ControlTemplate HorizontalAlignment和 VerticalAlignment 屬性綁定於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) |