当前位置: 首页 > news >正文

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, 指定初始值设定项)语法如下&#xff1a;C风格指定初始化器语法&#xff0c;初始化数据成员的一种便捷方式 T object { .des1 arg1, .des2 { arg2 } ... }; T object { .des1 arg1, .des2 { arg2 } ... }; 说明&#xff1a; 1.每个指…...

QT跨平台开发(windows、mac)中.pro文件设置

方法一&#xff1a; 在配置前面加上平台标识符的前缀 # 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系统中&#xff0c;流解析器&#xff08;Stream Parser&#xff09;的主要功能是将传输的数据流&#xff08;bit stream&#xff09;按照物理层&#xff08;PHY&#xff09;和媒体访问控制层&#xff08;MAC&#xff09;协议的要求进行分解和处理。这一步骤对于确保数据…...

GitHub网页打开慢的解决办法

有时候看资料絮叨github网页打不开&#xff0c;经百度后&#xff0c;发下下面的方法有效。 1&#xff09;获取github官网ip 我们首先要获取github官网的ip地址&#xff0c;方法就是打开cmd&#xff0c;然后ping 找到github的地址&#xff1a;20.205.243.166 2&#xff09;配…...

前端vue 实现取色板 的选择

大概就是这样的 一般的web端框架 都有自带的 的 比如 ant-design t-design 等 前端框架 都是带有这个的 如果遇到没有的我们可以自己尝试开发一下 简单 的 肯定比不上人家的 但是能用 能看 说的过去 我直接上代码了 其实这个取色板 就是一个input type 是color 的input …...

[leetcode]partition-list 分隔链表

. - 力扣&#xff08;LeetCode&#xff09; 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&#xff1a;用Graphic绘制数据的无限可能- 精选真开源&#xff0c;释放新价值。 概览 Graphic&#xff0c;这个基于Flutter的图表库&#xff0c;以其源自《The Grammar of Graphics》的灵感&#xff0c;为数据可视化提供了一种全新的方法。它不仅仅是一个工具&#xf…...

Linux搭建Socks5网络代理服务器,Centos 8 系统

一、目的用途 用于网络代理转发请求&#xff0c;隐藏真实的请求ip地址&#xff0c;或者用于绕过网络限制的目标服务器&#xff0c;将自己的访问请求到代理服务器&#xff0c;通过网络代理服务器将请求转发到目标服务器 二、安装Socks5前的准备 1、从官网下载ss5安装包&#xf…...

mysql 导出导入 数据库

导出 MySQL 数据库可以通过多种方法实现&#xff0c;最常见的方法是使用 mysqldump 工具。以下是一些常用的导出 MySQL 数据库的方法&#xff1a; 使用 mysqldump 工具 mysqldump 是一个命令行工具&#xff0c;用于导出 MySQL 数据库的结构和数据。以下是基本的导出命令&…...

linux_进程概念——理解冯诺依曼体系结构

前言&#xff1a; 本篇内容是为了让友友们较好地理解进程的概念&#xff0c; 而在真正了解进行概念之前&#xff0c; 要先了解一下冯诺依曼体系结构。 所以博主会先对冯诺伊曼体系结构进行解释&#xff0c; 然后再讲解进程的概念。 ps&#xff1a; 本篇内容适合了解一些linux指…...

Linux笔记之使用系统调用sendfile高速拷贝文件

Linux笔记之使用系统调用sendfile高速拷贝文件 code review! 文章目录 Linux笔记之使用系统调用sendfile高速拷贝文件sendfile 性能优势sendfile 系统调用优点&#xff1a;缺点&#xff1a; cp 命令优点&#xff1a;缺点&#xff1a; 实际测试&#xff1a;拷贝5.8个G的文件&a…...

OpenCV和PIL进行前景提取

摘要 在图像处理和分析中&#xff0c;前景提取是一项关键技术&#xff0c;尤其是在计算机视觉和模式识别领域。本文介绍了一种结合OpenCV和PIL库的方法&#xff0c;实现在批量处理图像时有效提取前景并保留原始图像的EXIF数据。具体步骤包括从指定文件夹中读取图像&#xff0c…...

Linux虚拟化大师:使用 KVM 和 QEMU 进行高级虚拟化管理

Linux 虚拟化大师&#xff1a;使用 KVM 和 QEMU 进行高级虚拟化管理 虚拟化技术是现代数据中心的核心技术之一&#xff0c;它可以将一台物理服务器分割成多个虚拟机&#xff0c;从而提高资源利用率&#xff0c;降低成本&#xff0c;并增强系统的灵活性和可扩展性。KVM&#xf…...

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可视化开发,鼠标键盘实现联动界面交互逻辑与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

Raw Socket(一)实现TCP三次握手

实验环境&#xff1a; Windows物理机&#xff1a;192.168.1.4 WSL Ubuntu 20.04.6 LTS&#xff1a;172.19.32.196 Windows下的一个http服务器&#xff1a;HFS&#xff0c;大概长这个样子&#xff1a; 客户端就是Ubuntu&#xff0c;服务端就是这个…...

考研数学开始的晚?别慌,超全复习规划拿去抄

实话实说&#xff0c;从七月中旬考研数一复习完真的有点悬&#xff0c;需要超级高效快速... 数二的时间也有点紧张...&#x1f97a; 中间基本没有试错的时间&#xff0c;让你换老师换习题尝试&#xff0c;必须从头到尾规划好 而且相信你也不止自己&#xff0c;有很多考研党都是…...

创建React 项目的几种方式

①.react自带脚手架 使用步骤&#xff1a; 1、下载 npm i create-react-app -g 2、创建项目命令&#xff1a; create-react-app 项目名称 ②.Vite构建工具创建react步骤&#xff1a;&#xff08;推荐&#xff09; 方法一&#xff1a; 1、yarn create vite 2、后续根据提示步…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...