控件模版的概念

Windows Phone中每一个控件都有一个默认的模版,用于描述控件的内部组成结构和外观样式

相对于原本的样式外观操作,自定义模版的可自定义性更强

最基本的重写控件模版

     <Grid>
<!--Button按钮居中对齐-->
<Button HorizontalAlignment="Center">
<!--原生控件模版设置的就是Template属性-->
<Button.Template>
<!--控件模版类型-->
<ControlTemplate>
<!--Border本身支持圆角-->
<Border
BorderBrush="White"
BorderThickness="3"
CornerRadius="10,20,10,10">
<TextBlock
Text="Button"
TextAlignment="Center"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>

BorderBrush 颜色  BorderThickness 边框宽度  CornerRadius 四个圆角的弧度

Text 内容  TextAlignment 水平对齐方式  VerticalAlignment 垂直对齐方式

绑定属性和重用(自定义控件模版)

     <Page.Resources>
<!--圆角Button模版-->
<ControlTemplate x:Key="CornerButton" TargetType="Button">
<!--Border本身支持圆角-->
<Border
Background="{TemplateBinding Button.Background}"
BorderBrush="{TemplateBinding Button.BorderBrush}"
BorderThickness="{TemplateBinding Button.BorderThickness}"
CornerRadius="10,20,10,10">
<!--TemplateBinding是用来在模版中绑定当前控件属性-->
<TextBlock
Text="{TemplateBinding Button.Content}"
TextAlignment="Center"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
<!--统一所有按钮-->
<Style TargetType="Button">
<Setter Property="Template" Value="{StaticResource CornerButton}"/>
</Style>
</Page.Resources>
<Grid>
<!--圆角Button模版,资源引用-->
<Button
Content="Button"
Background="Aqua"
BorderBrush="HotPink"
BorderThickness="15"
HorizontalAlignment="Center"
Template="{StaticResource CornerButton}">
</Button>
</Grid>

图标按钮展示内容

Button派生自ContentControl,所有ContentControl都是由ContentPersenter展示Content属性
     <Grid>
<Button>
<Button.Content>
<SymbolIcon Symbol="Accept"/>
</Button.Content>
<Button.Template>
<ControlTemplate>
<Border
BorderBrush="White"
BorderThickness="3" CornerRadius="10">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>

Windows Phone 四、控件模版的更多相关文章

  1. 使用代码浏览WPF控件模版

    纯代码创建,不需要创建界面,创建WPF工程后,直接复制代码就可以使用. 当你手头没有Blend,又不记得以下这段代码,但是又想浏览控件模版的时候,就可以直接复制拿来用了. public partial ...

  2. 背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog

    [源码下载] 背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog 作者:webabcd 介绍背水一战 Windows 10 之 控 ...

  3. 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu

    [源码下载] 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹 ...

  4. 背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout

    [源码下载] 背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout 作者:webabcd 介绍背水一战 Windows 10 之 ...

  5. 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing

    [源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...

  6. 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch

    [源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...

  7. 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox

    [源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...

  8. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  9. 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox

    [源码下载] 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) AutoSug ...

随机推荐

  1. 【Oracle】Oracle 序列步长问题

    问题: 数据库中客户表的ID 变化为 21\31\41 有序数字,而不是1\2\3 依次增长 [问题原因]: SEQ_CUSTOMNOTEEN 设置了缓存20,每次取20个数,然后一个一个给你,如果中 ...

  2. python集合

    集合的创建:set()和frozenset() 区别:frozenset()创建不可变的集合,一旦创建其元素不可改变:而set()创建的集合中的元素可以通过一定的方法进行改变. >>> ...

  3. Maya Plugin 编译Maya插件

    Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin.Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另 ...

  4. AD Local Domain groups, Global groups and Universal groups

    http://ss64.com/nt/syntax-groups.html Rules that govern when a group can be added to another group ( ...

  5. nginx服务器配置

    nginx主要配置 #定义Nginx运行的用户和用户组user www www; #每个worker进程绑定到指定CPU ,均衡各CPU 负载worker_cpu_affinity 000000000 ...

  6. Springboot数据库连接池报错的解决办法

    Springboot数据库连接池报错的解决办法 这个异常通常在Linux服务器上会发生,原因是Linux系统会主动断开一个长时间没有通信的连接 那么我们的问题就是:数据库连接池长时间处于间歇状态,导致 ...

  7. SQLite 加密 -- SQLCipher

    SQLite3 插件 github 下载地址 插件配置步骤地址 购买地址 其他加密方式介绍 SQLCipher API 地址 前言 应用使用 SQLite 来存储数据,很多时候需要对一部分的数据进行加 ...

  8. 接口测试之基于LoadRunner的一个简单示例

    这几天一直在捣鼓接口测试,以下总结一下: 1.什么是接口测试:接口是指系统模块与模块之间或者系统与系统之间进行交互,一般我们用的多的是HTTP协议的接口.WebService协议的接口.还有RPC(R ...

  9. 去除magento多店铺URL地址中的“___from_store=”

    magento 的多店铺功能,大多数情况下是根据语言来进行选择的,当添加了多店铺之后,一般情况下我们会选择开启添加store code到url地址中. Magento 自带的这种功能算是比较不错了,但 ...

  10. golang 环境一键式配置

    在window下,通过以下bat,自动设置环境变量,启动终端,并cd到gopath目录 set goroot=c:\go set gopath=d:\go @start "start gol ...