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相关推荐
- wpf的控件style
前段时间一直在做wpf的UI开发,每次想做些控件style定制的时候都很头疼 很多控件不知道他的controltemplate是什么样的 为了方便大家写style 特别奉上wpf的style大全 从此 ...
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月16日-7月22日)
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月16日-7月22日) 本周Silverlight学习资源更新 Silverlight DataGrid用法 模板列 ...
- WPF中ControlTemplate和DataTemplate的区别
原文:WPF中ControlTemplate和DataTemplate的区别 下面代码很好的解释了它们之间的区别: <Window x:Class="WPFTestMe.Window1 ...
- WPF Template模版之DataTemplate与ControlTemplate的关系和应用【二】
1. DataTemplate和ControlTemplate的关系 学习过DataTemplate和ControlTemplate,你应该已经体会到,控件只是数据的行为和载体,是个抽象的概念,至于它 ...
- TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇
在上一次的文章WPF OnApplyTemplate 不执行 或者执行滞后的疑惑谈到怎么正确的开发自定义控件,我们控件的样式中,属性的绑定一般都是用TemplateBinding来完成,如下一个基本的 ...
- [WPF自定义控件库] 自定义控件的代码如何与ControlTemplate交互
[WPF自定义控件库] 自定义控件的代码如何与ControlTemplate交互 原文:[WPF自定义控件库] 自定义控件的代码如何与ControlTemplate交互 1. 前言 WPF有一个灵活的 ...
- WPF入门第三篇 ControlTemplate、Trigger与Storyboard
ControlTemplate.Trigger与Storyboard ControlTemplate通常用在Style中,Trigger通常作为ControlTemplate的一部分,StoryBoa ...
- 闲话WPF之二四(WPF中的ControlTemplate [2])
前面关于ControlTempalte的Post当中,只说明了如何定义的外观.如果对于很复杂的自定义控件,通常我们还需要在ControlTemplate使用Resource.很显然,Resource的 ...
- 为什么这儿TemplateBinding不起作用了—研究WPF Binding(一)
工作中,写自定义控件,遇到一个奇怪的问题.场景是这样的:一个ListBox或其他ItemsControl显示数据列表,下方一个TextBlock显示列表中选定的值,代码大概是这样的(做了简化): &l ...
最新文章
- Win7环境下搭建GO开发平台——SublimeText 2
- 查看mysql数据库大小、表大小和最后修改时间
- git常用命令(二)
- java jps监控_记录java虚拟机性能监控工具(jps与jstat)的使用
- 软件开发人员的“七重苦”(2)
- nagios-3.4.3搭建
- python常用函数和操作_python一条语句分析几个常用函数和概念 -
- 前端工具--less篇
- 韩信大招:一致性哈希
- 不扯概念,用例子演示什么是脏读,不可重复读,幻读?
- tshark 操作后保存为pcap数据包
- 【博客项目】—登录功能实现( 四)
- 调试工具_Apifox for Mac(接口调试管理工具)
- 103.及时清除缓存
- HDU 2089:不要62(数位DP)
- 【VS开发】Windows平台下Makefile学习笔记
- postSQL安装和GIS数据导入
- Swing开发之JButton篇
- 美团大众点评往届笔试面试题汇总
- Sed 流文本编辑器
热门文章
- Python3算术运算符
- elasticsearch高亮显示查询结果
- nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析
- 什么是循环神经网络——学习笔记
- 以下python语言关键字在异常处理_【单选题】以下 Python 语言关键字在异常处理结构中用来捕获特定类型异常的选项是: ( )...
- 手机蓝牙如何减少延时_如何使用车载蓝牙播放手机音乐的方法
- java泛型基类list_泛型:列表?扩展Animal与List Animal相同吗?
- Cpp 对象模型探索 / 含有虚基类的类的内存布局
- 安装Win7时出现“安装程序无法创建新的系统分区……”的解决办法
- 替代触发器如何加判断 条件_《小逻辑》:如何设定目标,制定计划,做出更好的选择...