WPF UI框架界面开发教程(十二)
为了配合界面统一风格,在样式中添加单选按钮,RadioButton选中后,Background变成蓝色,圆角给个1000。
在样式中先添加两列,第一列显示是否选中单选按钮,而且给的高度和宽度都是20,所以显示是圆形,第二列是显示文本内容,演示看下RadioButton运行后效果。
先不添加依赖属性,只给默认样式代码:
<Style x:Key="FocusVisualStyle"><Setter Property="Control.Template"><Setter.Value><ControlTemplate><Rectangle Margin="-2" SnapsToDevicePixels="True"StrokeThickness="1" StrokeDashArray="1 2"Stroke="{StaticResource WordBlueBrush}" /></ControlTemplate></Setter.Value></Setter></Style><Style TargetType="{x:Type RadioButton}"><Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisualStyle}" /><Setter Property="Background" Value="{StaticResource BackgroundLightBrush}" /><Setter Property="BorderBrush" Value="{StaticResource WordBlueBrush}"/><Setter Property="Foreground" Value="{StaticResource ForegroundMainBrush}"/><Setter Property="BorderThickness" Value="1" /><Setter Property="VerticalContentAlignment" Value="Center" /><Setter Property="HorizontalContentAlignment" Value="Center" /><Setter Property="FontSize" Value="20" /><Setter Property="Cursor" Value="Hand" /><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type RadioButton}"><Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><Border x:Name="radioButtonBorder"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"Background="{TemplateBinding Background}"CornerRadius="1000"HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"Margin="1,1,5,1"VerticalAlignment="{TemplateBinding VerticalContentAlignment}"Effect="{TemplateBinding Effect}"Width="20"Height="20"><Border x:Name="border" Margin="2" Background="Transparent" CornerRadius="1000"></Border></Border><ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" ContentStringFormat="{TemplateBinding ContentStringFormat}"Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True"SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /></Grid><ControlTemplate.Triggers><Trigger Property="IsChecked" Value="True"><Setter Property="Background" TargetName="border" Value="{StaticResource WordBlueBrush}" /></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter><Style.Triggers><Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5" /></Trigger><Trigger Property="IsChecked" Value="True"><Setter Property="BorderBrush" Value="{StaticResource WordBlueBrush}" /></Trigger><Trigger Property="IsMouseOver" Value="True"><Setter Property="BorderBrush" Value="{StaticResource WordBlueBrush}" /></Trigger><Trigger Property="IsPressed" Value="True"><Setter Property="BorderBrush" Value="{StaticResource WordBlueBrush}" /></Trigger></Style.Triggers></Style>
WPF UI框架界面开发教程(十二)相关推荐
- WPF UI框架界面开发教程(五)
先看一下登录按钮效果 源码下载地址:https://download.csdn.net/download/liaohaiyin/20607269 按钮自定义样式代码 WPF 触发器有三种,分别是 Tr ...
- WPF UI框架界面开发教程(七)
Button加入等待动画,先运行软件看下效果 建立BusyFrameAnimation类,在类中创建Button中依赖属性IsBusyProperty public class BusyFrameAn ...
- Android 10.0 SystemUI下拉状态栏UI定制化开发系列(十二)
目录 1.概述 2.核心代码 3.核心代码部分分析 3.1 NotificationStackScrollLayout.java代码分析 3.2接下来分析Activat
- iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)
iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...
- SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态 在示例2-2中,设置按钮的标题和颜色时,需要对按钮的状态进行设置,表示按钮在某一状态下的标题和标题颜色是什么样子.例如,UICo ...
- 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨 ...
- 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨) ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...
最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
最新文章
- oracle-01031+linux,Linux下,“ORA-01031: insufficient privileges”的处理
- 如何快速搭建一个简约美观的在线互动教室?
- uniapph5授权成功后返回上一页_被成功验证过的的7条选品思路(收藏)
- boost::fusion::as_vector用法的测试程序
- Taro+react开发(100):问答模块07适配
- linux下删除已经创建的数据库,MongoDB 数据库的创建和删除
- protect db by denying DDL operations
- C#中对 XML节点进行增、删、改、查
- Atitit ever note org log t99 目录 1. data	1 2. Sik dsk zip mode	1 3. Local exted stat	2 4. Recy	3 1
- 【理解】运用数据透视表制作三栏账
- Java常量池[乐乐独记]
- android 背景图缩放,android背景图按比例缩放方法
- 智能家居时代,怎样选择一把你心底里切实需要的智能门锁?
- 什么是软件测试,软件测试究竟是做什么的
- 苹果使用过程的一些小技巧
- OSChina 周四乱弹 ——裤子穿反就被开除了?
- 【稳定性day9】有赞混沌工程的实践 - 不能消灭Bug还不如与之做朋友
- VSCode折腾log插件
- Android 口袋模式
- GeForce GTX 970 硬件特性
热门文章
- DAMA试题分析:主键有什么特性?
- 基于Python 语言的高分二号卫星全色和多光谱遥感数据融合(锐化)
- MXNET GPU环境出错 cc:1288: GPU is not enabled
- [CF1598G]The Sum of Good Numbers
- matplot的基本使用
- 年薪90万因上班无聊起诉公司/ 马斯克不让OpenAI用推特数据训练/ 旧金山警方获准使用致命机器人…今日更多新鲜事在此...
- [探讨]开发者眼中的PhoneGap体验
- Java在线格式化JSON,美化显示
- php黑白图片,PS制作黑白照片效果图
- 抖音壁纸小程序分销源代码