上讲我们介绍了DataTemplate,现在我们就介绍下ControlTemplate,可能后面大多在编码时候会出现一些英文,工作习惯,请见谅。

ControlTemplate: 控件的外观,也就是控件是什么样子

后面在我们这个项目中会大量用到这个东西,

现在我大概介绍一下你怎样去使用一个控件模板,首先你得定义一个控件模板,基本格式如下:

    <ControlTemplate x:Key="按钮控件模板名称">

      在这里就可以去定义你当前这个模板的具体样式,比如你定义一个按钮的样式如下

        <Grid>

           <Ellipse>

              <Ellipse .Style >

                <Style Target="Ellipse ">

                    <Setter Property="Fill" >

                     <Setter.Value>

                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">

                          <LinearGradientBrush.GradientStops>

                          <GradientStop Offset="0.0" Color="#fff" />

                          <GradientStop Offset="1.0" Color="Red" />

                        </LinearGradientBrush.GradientStops>

                       </LinearGradientBrush>

                     </Setter.Value>

                    </Setter>

                <Style>

              <Ellipse >

            </Ellipse>

           <ContentPresenter Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center" /> 

        </Grid>  

    </ControlTemplate>

那你在使用的时候就可以这样

    <Button Width="200" Height="120" Margin="20" Template="{StaticResource 按钮控件模板名称}">OK</Button>

大概就会长这样,这个代码是我直接在这里写的,可能会有点问题,模式是这样的,谢谢。

补充下,在说到模板的时候我们会用到很多的style,就比如刚才那个Style是怎么回事估计新手会有点纳闷那啥玩意,那我在下一讲补充下讲下WPF 中 Style

从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第四讲 WPF中 ControlTemplate的更多相关文章

  1. 从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第二讲 WPF中 绑定

    说到WPF, 当然得从绑定说起,这也是WPF做的很成功的一个地方,这也是现在大家伙都在抛弃使用winform的其中一个主要原因,Binding这个东西从早说到完其实都说不完的,我先就做一些基本的介绍, ...

  2. 从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第三讲 WPF中 DataTemplate

    后面在我们这项目中会大量用到模板,主要指的是空间模板,数据模板会用得比较少,下面我想介绍下控件模板和数据模板,我看到有位大神写得比较不错,我整理了下,让大家能更好理解,供大家参考, 首先介绍 Data ...

  3. WPF MVVM从入门到精通8:数据验证

    原文:WPF MVVM从入门到精通8:数据验证 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF M ...

  4. .NET Core 3 WPF MVVM框架 Prism系列之对话框服务

     本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的对话框服务,这也是prism系列的最后一篇完结文章,下面是Prism系列文章的索引: .NET Core 3 WPF MVVM框 ...

  5. ViewModel从未如此清爽 - 轻量级WPF MVVM框架Stylet

    Stylet是我最近发现的一个WPF MVVM框架, 在博客园上搜了一下, 相关的文章基本没有, 所以写了这个入门的文章推荐给大家. Stylet是受Caliburn Micro项目的启发, 所以借鉴 ...

  6. .NET Core 3 WPF MVVM框架 Prism系列之命令

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的命令的用法 一.创建DelegateCommand命令 我们在上一篇.NET Core 3 WPF MVVM框架 Prism系列之 ...

  7. .NET Core 3 WPF MVVM框架 Prism系列之事件聚合器

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用事件聚合器实现模块间的通信 一.事件聚合器  在上一篇 .NET Core 3 WPF MVVM框架 Prism系列之模块化 ...

  8. .NET Core 3 WPF MVVM框架 Prism系列文章索引

    .NET Core 3 WPF MVVM框架 Prism系列之数据绑定 .NET Core 3 WPF MVVM框架 Prism系列之命令 .NET Core 3 WPF MVVM框架 Prism系列 ...

  9. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享

    1 源码下载 2 OSGi.NET插件应用架构概述 3 漂亮界面框架原理概述 4 漂亮界面框架实现  4.1 主程序  4.2 主程序与插件的通讯   4.2.1 主程序获取插件注册的服务   4.2 ...

随机推荐

  1. flex的Cairngorm框架

    由于要写flex的项目,接触了一段时间的Cairngorm框架,初步认识它是flex的一个mvc结构的框架实现了页面,调用相应方法的控制,和后台交互之间的三层之间的联系.Cairngorm框架主要包括 ...

  2. 【练习】数据文件的更改:改名或改路径 users01.dbf-->users01_bak.dbf

    方法一:1.将数据文件的状态offline SQL> select file_name,tablespace_name from dba_data_files where file_name l ...

  3. windows 10 笔记本关机不断电解决

    右键我的电脑-->管理-->设备管理器-->系统设备 找到Intel(R) Management Engine Interface  双击打开,禁用,确定,完事 原因,该驱动11.0 ...

  4. 使用JS对HTML标签进行增删改查

    以下为通过JS对li标签进行简单的增删改查: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  5. ionic cordova social media sharing plugin

    https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin.git 从上面的连接下载 插件 1.肯定是要加入 下面的那个文件的吖 从 ...

  6. a mystrious max subquence sum

    #include<cstdio>#include<cstring>const int maxn=100005;int buf[maxn];int main(){ freopen ...

  7. gulp.spriteSmith使用

    var gulp = require('gulp'); var spritesmith = require('gulp.spritesmith'); gulp.task('sprite', funct ...

  8. SpringMVC序列化Long转成String

    问题:由于JS中Number的精度为16位(最大位17位,第17位精度不准),我们的ID用的Number 18位,传到客户端会丢失最后两位: 解决方式:Long序列化成String,传到客户端: 注意 ...

  9. VS2010调试生成的文件

    调试时IntelliTrace打开了,关闭IntelliTrace就可以了, Win7的话在C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebug ...

  10. C puzzles详解【6-8题】

    第六题 #include<stdio.h> int main() { ; switch(a) { ': printf("ONE\n"); break; ': print ...