WPF ControlTemplate TemplateBinding
WPF ControlTemplate TemplateBinding
— 控件模板中元素屬性綁定
(標題起這個名字感覺不太合適,由于水平有限就暫且這樣明白吧,希望前輩看到好能指正,再次先謝過了! )
控件(Control)都有自己的默認呈現形式(Template),有時候出于項目的需要,我們可能需要為控件重新定義顯示模板(Template),使控件看起來更加美觀,界面更加華麗。
新模板的格式需要寫在Style段落中語法格式形如:
<Style x:Name="mystyle" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}">
</Ellipse>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Button Margin="122.5,119.5,80,70" Name="button1" Background="Green" Click="button1_Click" Foreground="Red">Button</Button>
代碼中 :
TemplateBinding 用于將模板元素屬性綁定到使用該模板的控件屬性。此綁定是單行綁定(one way).
舉例: Fill="{TemplateBinding Background}" 使用該模板的控件的FILL屬性設置為紅色,則模板中的橢圓形背景色變為紅色。
該示例代碼中的應用該模板的控件寬(Width)、高(Height)屬性直接影響到模板中橢圓形控件的形狀(圓形OR橢圓).
由于我們用ControlTemplate重寫了Button的樣式,所以我們也要在ControlTemplate中增加ControlPresenter。
通過ControlPresenter中的Content來綁定父容器的Content屬性(ControlPresenter有個隱式的Content="{TemplateBinding Content}",也就是你可以寫也可以不寫它)。
(代碼圓形效果如下:)
參考文章:http://msdn.microsoft.com/zh-cn/library/system.windows.controls.contentpresenter.aspx
http://hi.baidu.com/oemsea/blog/item/242b58586b120ac09c8204c4.html
?
轉載于:https://www.cnblogs.com/JasonJI/archive/2012/03/29/2423543.html
總結
以上是生活随笔為你收集整理的WPF ControlTemplate TemplateBinding的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 插了u盘后电脑开不了怎么办啊 电脑插U盘
- 下一篇: C#委托、事件、消息(入门级)