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 条评论
登录 后参与评论

相关文章

来自专栏coding

transition-group实现动画效果

如果要实现动画效果的元素是通过v-for循环渲染出来的,就不能使用transition,应该用transition-group将元素包裹

621
来自专栏无所事事者爱嘲笑

经常遇到的浏览器的兼容性有哪些?

1385
来自专栏LeoXu的博客

Flex笔记_使用Spark列表控件 原

ListBase ->  SkinnableDataContainer -> SkinnableContainerBase -> SkinnableCompo...

723
来自专栏HTML5学堂

WEB前端项目开发中需注意的细节

WEB前端项目开发中需注意的细节 HTML5学堂:在WEB前端开发当中,书写基本的代码固然重要,而细节也是不容忽略的。在本文当中,我们整理了书写HTML与CSS...

2948
来自专栏xingoo, 一个梦想做发明家的程序员

CSS 之 选择器

选择器 类型选择器 也叫做 元素选择器和简单选择器,可以根据元素标签指定样式。 p { color:red; } 类选择器 一般用于某些同类型的样式。 .xxx...

1919
来自专栏大数据钻研

HTML基础

HTML基础 ---- HTML基本知识与结构 HTML常见标签 标签写法与嵌套的讨论 HTML、CSS、javascript三者的关系 HTML是网页内容...

2953
来自专栏landv

scanf函数与scanf_s函数

1353
来自专栏技术博文

jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后

当对象获得焦点后,自动把光标移到内容最后,使用focus()函数便可实现,下面有个不错的示例,感兴趣的朋友可以参考下 jquery获取焦点后光标在字符串后,当i...

3637
来自专栏python3

body标签中相关标签

字体标签包含:h1~h6、<font>、<u>、<b>、<strong><em>、<sup>、<sub>

801
来自专栏LeoXu的博客

布局和容器 原

483

扫描关注云+社区