WPF模板

先来个模板:

<ControlTemplate x:Key="button" TargetType="Button">
            <Border CornerRadius="4" BorderThickness="3">
                <Border.BorderBrush>
                    <LinearGradientBrush EndPoint="0,1">
                        <GradientStop Offset="0" Color="#FF95EB09"/>
                        <GradientStop Offset="1" Color="Yellow"/>
                    </LinearGradientBrush>
                </Border.BorderBrush>
                <Border.Background>
                    <LinearGradientBrush EndPoint="0,1">
                        <GradientStop Offset="0" Color="Yellow"/>
                        <GradientStop Offset="1" Color="#FF95EB09"/>
                    </LinearGradientBrush>
                </Border.Background>
                <ContentPresenter  HorizontalAlignment="Center"
                                   VerticalAlignment="Center"/>
            </Border>
            
        </ControlTemplate>

注:边框与背景的渐变色相反可以显得有质感,

效果如:

1.模板绑定

我们希望能够添加一些参数到模板中,或者利用来自模板控件中的属性更进一步地自定义控件,

所以我们可以在模板控件上绑定属性,让控件使用者能够调整控件上的属性并自定义模板,代码如:

 <ControlTemplate x:Key="button" TargetType="{x:Type Button}">
            <Border CornerRadius="4" BorderThickness="{TemplateBinding Property=BorderThickness}"
                    BorderBrush="{TemplateBinding Property=BorderBrush}"
                    Background="{TemplateBinding Property=Background}"
                    >
                <ContentPresenter/>

            </Border>
        </ControlTemplate>

  这段代码把来自Border的三个属性绑定到了模板化的Button控件上同样的属性上。这样做以后,只需简单

的设置Button上的属性,就可以了创建下图的按钮:

 <ControlTemplate x:Key="button" TargetType="{x:Type Button}">
            <Border CornerRadius="4" BorderThickness="{TemplateBinding Property=BorderThickness}"
                    BorderBrush="{TemplateBinding Property=BorderBrush}"
                    Background="{TemplateBinding Property=Background}"
                    >
                <ContentPresenter/>

            </Border>
        </ControlTemplate>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏vue学习

CSS日常踩坑后的总结(猜测你也会遇到的,持续更新。。。)

可以用left:50%加上margin-left:-(宽度/2),来实现绝对定位的水平居中,这里的宽度指的是设置为绝对定位的元素的宽度

1033
来自专栏一“技”之长

标签之美四——为网页添加绚丽多彩的图像 原

这里图片路径的写法和本地超链接的写法是一样的,可以参考上一篇博客中关于本地路径的地方:http://my.oschina.net/u/2340880/blog/...

853
来自专栏超然的博客

常用样式制作思路

table设置固定宽度,table-layout 为fixed——由单元格的宽度决定表格的宽度,不受内容的影响   单元格设置固定宽度,剩下的单元格实现自适应

1053
来自专栏Java Edge

CSS 全解析实战(四)-CSS 布局1 布局简介2 布局方式(表格)3 一些布局属性4 flexbox现代布局方式(弹性盒子)5 float布局6 inline-block布局7 响应式布局(1)8

content: 文字内容区 padding: 内容区到边框的留白区 border: 边框 margin: 离别的东西的距离

512
来自专栏我的博客

JS动态添加表单

<script type=”text/javascript”> function addRow()<!–js实现添加一行内容!–> { var tr=docum...

3456
来自专栏前端知识分享

第93天:CSS3 中边框详解

其中边框圆角、边框阴影属性,应用十分广泛,兼容性也相对较好,具有符合渐进增强原则的特征,我们需要重点掌握。

794
来自专栏我的博客

JQuery事件处理

Jquery事件 1、  绑定事件示例代码: <a href=”#”>绑定事件</a> <div style=”display:none;”> 什么是绑定事件?...

2965
来自专栏吴裕超

给新生成的节点(动态生成节点)绑定事件方法总结

第一种 jquery写法 $('.father').on('click',',child',function(){}) $(document).on('cli...

3316
来自专栏自动化测试实战

HTML第六课——盒子模型的应用【1】

这里就是这个li标签里的所有属性了,我们在做开发时可以直接修改这里的属性值,然后直接在页面中查看效果,比如我现在在这里加一个

752
来自专栏十月梦想

HTML表格

            4.cellspacing:外边距(单元格和单元格之间的距离)

692

扫码关注云+社区