WPF-控件样式设置
1、控件样式设置
- 1.1、内嵌式为相同控件设置样式
- `
-
<Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="Yellow"></Setter><Setter Property="Width" Value="60"></Setter><Setter Property="Height" Value="80"></Setter><Setter Property="FontSize" Value="18"></Setter></Style> </Window.Resources> <Button Content="通用"></Button>`<!--为指定key设置样式--><Style x:Key="loginStyle" TargetType="Button"><Setter Property="Background" Value="Red"></Setter><Setter Property="Width" Value="60"></Setter><Setter Property="Height" Value="80"></Setter><Setter Property="FontSize" Value="18"></Setter></Style><Button Style="{StaticResource loginStyle}" Content="登录"></Button><!--动态资源可以通过方法更改相关信息--><Button Style="{DynamicResource loginStyle }" Content="动态资源" Click="Button_Click"></Button>
1.2、外联式
BaseButtonStyle.xaml文件<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><!--设置一个基础样式--><Style TargetType="Button"><Setter Property="FontSize" Value="18"></Setter><Setter Property="Margin" Value="20,30"></Setter></Style><!--为指定button设置样式并且继承基础样式--><Style x:Key="quitStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"><Setter Property="Background" Value="Yellow"></Setter><Setter Property="Width" Value="60"></Setter><Setter Property="Height" Value="80"></Setter></Style>
</ResourceDictionary><!--使用BaseButtonStyle里全局样式--><StackPanel><Button Content="登录"></Button><Button Style="{StaticResource quitStyle}" Content="退出"></Button><Button Content="通用"></Button></StackPanel>
1.3、控制内置模板(触发器Triggers)
<Grid><!--<Button Width="100" Height="50" Content="自定义按钮" Background="Red" Foreground="Wheat"></Button>--><Button Width="100" Height="50" Content="自定义按钮" Background="Red" Foreground="Wheat"><Button.Template><ControlTemplate TargetType="Button"><!--等价 <ControlTemplate TargetType="{x:Type Button}">--><!-- border 属性都可以,如颜色也可以这么写Background="{TemplateBinding Background}"--><Border x:Name="border" Background="Red" BorderBrush="Black" BorderThickness="2" CornerRadius="10"><!-- <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Content="自定义内容"> </ContentPresenter>--><TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock></Border><!--触发器鼠标放上去改变属性--><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter TargetName="border" Property="Background" Value="Black"></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Button.Template></Button><!-- 延伸CornerRadius 假如CornerRadius属性也想使用绑定,但是Button是没有CornerRadius属性的,可以采用自定义一个Button,然后定义一个依赖属性,来实现--></Grid>
事件触发器<Style.Triggers><EventTrigger RoutedEvent="Button.Click"><BeginStoryboard><Storyboard><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="Green" Duration="0:0:0.5" /></Storyboard></BeginStoryboard></EventTrigger></Style.Triggers>1.4、抽离模板(控件模板)<!--将第三个模板提取出来--><Window.Resources><ControlTemplate x:Key="ButtonTemplated" TargetType="{x:Type Button}"><Border Name="Border" BorderThickness="2" CornerRadius="3" BorderBrush="AliceBlue" Background="Aqua" TextBlock.Foreground="White"><ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True" ><Setter TargetName="Border" Property="Background" Value="Red"></Setter></Trigger><Trigger Property="IsPressed" Value="True"><Setter TargetName="Border" Property="Background" Value="White"></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Window.Resources><StackPanel Margin="5"><Button Margin="5" Padding="3">Normal Button</Button><Button Name="mybutton" Margin="5" Padding="3" Template="{StaticResource ResourceKey=ButtonTemplated}">Templated Button</Button></StackPanel><!--数据模板--><DataTemplate x:Key="CustomItemTemplate"><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding name}" Width="100"/><TextBlock Text="{Binding age}" Width="100"/></StackPanel> </DataTemplate><ListBox x:Name="listBox" ItemTemplate="{StaticResource CustomItemTemplate}"></ListBox>
2.1点击事件
<Button Width="50" Height="50" Background="Red" Content="点击" Click="Button_Click"></Button>public partial class Window5 : Window{public Window5(){InitializeComponent();}private void Button_Click(object sender, RoutedEventArgs e){}}
相关文章:
WPF-控件样式设置
1、控件样式设置 1.1、内嵌式为相同控件设置样式 <Window.Resources><Style TargetType"Button"><Setter Property"Background" Value"Yellow"></Setter><Setter Property"Width" Value"60"&g…...
C++20中的指定初始化器(designated initializers)
指定初始化器(designated initializers, 指定初始值设定项)语法如下:C风格指定初始化器语法,初始化数据成员的一种便捷方式 T object { .des1 arg1, .des2 { arg2 } ... }; T object { .des1 arg1, .des2 { arg2 } ... }; 说明: 1.每个指…...
QT跨平台开发(windows、mac)中.pro文件设置
方法一: 在配置前面加上平台标识符的前缀 # windows win32:INCLUDEPATH F:/Dev/ffmpeg-4.3.2/include win32:LIBS -LF:/Dev/ffmpeg-4.3.2/lib \-lavcodec \-lavdevice \-lavfilter \-lavformat \-lavutil \-lpostproc \-lswscale \-lswresample# mac macx:INCLUD…...
wifi中的stream parser
在Wi-Fi系统中,流解析器(Stream Parser)的主要功能是将传输的数据流(bit stream)按照物理层(PHY)和媒体访问控制层(MAC)协议的要求进行分解和处理。这一步骤对于确保数据…...
GitHub网页打开慢的解决办法
有时候看资料絮叨github网页打不开,经百度后,发下下面的方法有效。 1)获取github官网ip 我们首先要获取github官网的ip地址,方法就是打开cmd,然后ping 找到github的地址:20.205.243.166 2)配…...
前端vue 实现取色板 的选择
大概就是这样的 一般的web端框架 都有自带的 的 比如 ant-design t-design 等 前端框架 都是带有这个的 如果遇到没有的我们可以自己尝试开发一下 简单 的 肯定比不上人家的 但是能用 能看 说的过去 我直接上代码了 其实这个取色板 就是一个input type 是color 的input …...
[leetcode]partition-list 分隔链表
. - 力扣(LeetCode) class Solution { public:ListNode* partition(ListNode* head, int x) {ListNode *smlDummy new ListNode(0), *bigDummy new ListNode(0);ListNode *sml smlDummy, *big bigDummy;while (head ! nullptr) {if (head->val &l…...
Apache功能配置:访问控制、日志分割; 部署AWStats日志分析工具
目录 保持连接 访问控制 只允许指定ip访问 拒绝指定主机其他正常访问 用户授权 日志格式 日志分割 操作步骤 使用第三方工具cronolog分割日志 AWStats日志分析 操作步骤 访问AwStats分析系统 保持连接 Apache通过设置配置文件httpd-default.conf中相关的连接保持参…...
开源可视化Flutter图表库:Graphic
Graphic:用Graphic绘制数据的无限可能- 精选真开源,释放新价值。 概览 Graphic,这个基于Flutter的图表库,以其源自《The Grammar of Graphics》的灵感,为数据可视化提供了一种全新的方法。它不仅仅是一个工具…...
Linux搭建Socks5网络代理服务器,Centos 8 系统
一、目的用途 用于网络代理转发请求,隐藏真实的请求ip地址,或者用于绕过网络限制的目标服务器,将自己的访问请求到代理服务器,通过网络代理服务器将请求转发到目标服务器 二、安装Socks5前的准备 1、从官网下载ss5安装包…...
mysql 导出导入 数据库
导出 MySQL 数据库可以通过多种方法实现,最常见的方法是使用 mysqldump 工具。以下是一些常用的导出 MySQL 数据库的方法: 使用 mysqldump 工具 mysqldump 是一个命令行工具,用于导出 MySQL 数据库的结构和数据。以下是基本的导出命令&…...
linux_进程概念——理解冯诺依曼体系结构
前言: 本篇内容是为了让友友们较好地理解进程的概念, 而在真正了解进行概念之前, 要先了解一下冯诺依曼体系结构。 所以博主会先对冯诺伊曼体系结构进行解释, 然后再讲解进程的概念。 ps: 本篇内容适合了解一些linux指…...
Linux笔记之使用系统调用sendfile高速拷贝文件
Linux笔记之使用系统调用sendfile高速拷贝文件 code review! 文章目录 Linux笔记之使用系统调用sendfile高速拷贝文件sendfile 性能优势sendfile 系统调用优点:缺点: cp 命令优点:缺点: 实际测试:拷贝5.8个G的文件&a…...
OpenCV和PIL进行前景提取
摘要 在图像处理和分析中,前景提取是一项关键技术,尤其是在计算机视觉和模式识别领域。本文介绍了一种结合OpenCV和PIL库的方法,实现在批量处理图像时有效提取前景并保留原始图像的EXIF数据。具体步骤包括从指定文件夹中读取图像,…...
Linux虚拟化大师:使用 KVM 和 QEMU 进行高级虚拟化管理
Linux 虚拟化大师:使用 KVM 和 QEMU 进行高级虚拟化管理 虚拟化技术是现代数据中心的核心技术之一,它可以将一台物理服务器分割成多个虚拟机,从而提高资源利用率,降低成本,并增强系统的灵活性和可扩展性。KVM…...
CentOS-6的iso下载地址镜像yum源
CentOS6下载地址镜像yum源 从 CentOS官网 Vault Mirror 过期镜像库下载 下载iso光盘镜像,使用其提供的yum源 vault:保险库,墓穴 , Vault Mirror 是官方对过期镜像库的取名 CentOS官网 Vault Mirror 过期镜像库 可下载CentOS2,3,4,5,6,7,8 CentOS-Vault.repo对应的是发行该镜…...
【python】PyQt5可视化开发,鼠标键盘实现联动界面交互逻辑与应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
Raw Socket(一)实现TCP三次握手
实验环境: Windows物理机:192.168.1.4 WSL Ubuntu 20.04.6 LTS:172.19.32.196 Windows下的一个http服务器:HFS,大概长这个样子: 客户端就是Ubuntu,服务端就是这个…...
考研数学开始的晚?别慌,超全复习规划拿去抄
实话实说,从七月中旬考研数一复习完真的有点悬,需要超级高效快速... 数二的时间也有点紧张...🥺 中间基本没有试错的时间,让你换老师换习题尝试,必须从头到尾规划好 而且相信你也不止自己,有很多考研党都是…...
创建React 项目的几种方式
①.react自带脚手架 使用步骤: 1、下载 npm i create-react-app -g 2、创建项目命令: create-react-app 项目名称 ②.Vite构建工具创建react步骤:(推荐) 方法一: 1、yarn create vite 2、后续根据提示步…...
探索Kotlin:从K1到K2
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 嘿,小伙伴们!今天我们来聊聊Kotlin,这个在安卓开发圈里越来越火的编程语言。…...
Python爬虫速成之路(1):获取网页源代码
hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…...
OpenGL笔记七之顶点数据绘制命令和绘制模式
OpenGL笔记七之顶点数据绘制命令和绘制模式 —— 2024-07-07 杭州 下午 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记七之顶点数据绘制命令和绘制模式1.OpenGL版本号更改和编译更改2.GL_TRIANGLES模式绘制一个三角形、支持NFC坐标随窗口缩放2.1.三个点…...
力扣题解( 最长湍流子数组)
978. 最长湍流子数组 已解答 给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。 更正式地来说,当 arr 的子数组 A[i], A[i1], ..., A[j] 满足仅满…...
pytorch-RNN存在的问题
这里写目录标题 1. RNN存在哪些问题呢?1.1 梯度弥散和梯度爆炸1.2 RNN为什么会出现梯度弥散和梯度爆炸呢? 2. 解决梯度爆炸方法3. Gradient Clipping的实现4. 解决梯度弥散的方法 1. RNN存在哪些问题呢? 1.1 梯度弥散和梯度爆炸 梯度弥散是…...
Leetcode 17:电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 public List<String> letterCombinations(String digits) {if (digits null || digits.length() 0) {return result;}int index0; //记录遍历digits的角标//初始…...
jmeter-beanshell学习4-beanshell截取字符串
再写个简单点的东西,截取字符串,参数化文件统一用csv,然后还要用excel打开,如果是数字很容易格式就乱了。有同事是用双引号把数字引起来,报文里就不用加引号了,但是这样beanshell处理起来,好像容…...
QScrollArea 设置最大的高度值
在 Qt 中,QScrollArea 是一个提供滚动视图的控件,允许用户查看大于当前视口尺寸的内容。如果你想要为 QScrollArea 设置一个最大的高度值,这通常不是直接通过 QScrollArea 的属性来设置的,而是需要调整其内容部件(widg…...
CentOS6禁止锁屏
在电源中设置后还是会锁屏, 原因是有屏幕保护程序 电源管理都 “从不” 一些AI的回答 在CentOS 6系统中,如果你想要禁用锁屏功能,可以编辑/etc/kbd/config文件。这个文件通常包含了键盘相关的设置,包括密码策略和屏幕锁定选项。 首先打开终…...
MapReduce底层原理详解:大案例解析(第32天)
系列文章目录 一、MapReduce概述 二、MapReduce工作机制 三、Map,Shuffle,reduce阶段详解 四、大案例解析 文章目录 系列文章目录前言一、MapReduce概述二、MapReduce工作机制1. 角色与组件2. 作业提交与执行流程1. 作业提交:2. Map阶段&…...
wordpress 访客统计插件/腾讯营销平台
[UOJ#275]【清华集训2016】组合数问题 试题描述 组合数 \(C_n^m\) 表示的是从 \(n\) 个物品中选出 \(m\) 个物品的方案数。举个例子,从 \((1,2,3)\) 三个物品中选择两个物品可以有 \((1,2),(1,3),(2,3)\) 这三种选择方法。根据组合数的定义,我们可以给出…...
杭州企业网站制作公司/石家庄疫情防控最新政策
原标题:全新世界boss:邪龙沉睡之境——神藏天(必掉天书黄!)神藏天触发机制每周三晚上19:30,在巨阙地图会刷新7个小怪——神灭贪狼星君,击杀完这7只小怪,通往邪龙沉睡之地的NPC通道就会开启&…...
有用织梦做的大网站吗/专门用来查找网址的网站
作者:Natasha The Robot,原文链接,原文日期:2016-07-25译者:Lanford3_3;校对:千叶知风;定稿:CMB上周我出席了 iOSDevCampDC,并有幸参加了 ayanonagon 关于测试…...
越影网站建设/合肥seo外包平台
????????关注后回复 “进群” ,拉你进程序员交流群????????来源丨新智元新智元报道 来源:Reddit编辑:Priscilla 好困【新智元导读】苹果计划推出在iOS 15中应用的CSAM检测系统备受争议。近日,一位Reddit用户发现…...
旅游景点网站建设设计说明/江东怎样优化seo
暖气来了,嗓子眼儿冒火、口腔溃疡、大便干燥,该怎么办呢?解放军309医院营养科主任医师张晔开出四字饮食处方:降、清、润、补。 降火汤——冬瓜配紫菜 很多家庭最爱做西红柿黄瓜片汤,其实冬季最好的汤是冬瓜汤ÿ…...
家乐福官网/荥阳seo推广
昨天晚上在寝室写python多线程的时候,用了几个测试的程序,分别是递归方法求斐波那契数的值。分别采用单线程一个一个执行的方法和采用多线程调用的方法。观察所用的时间基本上差不多的。 然后我在每个函数内部加入sleep()函数以后,分别让它们…...