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

5.1 WPF路由事件以及文本样式

   一、路由事件

        WPF中存在一种路由事件(routed event),该事件将发送到包含该控件所在层次的所有控件,如果不希望继续向更高的方向传递,只要设置e.Handled = true即可。

        这种从本控件-->父控件->父的父控件的事件,成为冒泡事件(bubbling event)。

        路由方向也可以反向,比如从父控件->子控件->子控件的子控件。这种事件成为下钻事件(tunneling event),下钻事件都是使用Preview作为前缀。

举例说明:

1.1  对于一个grid中的button按钮,选择该按钮后按下某个按键(除了回车+空格外),则触发顺序为:

        window_PreviewKeyDown --> Grid_PreviewKeyDown ->Button_PreviewKeyDown

->Button_KeyDown--> Grid_KeyDown-->  window_KeyDown

      可见PreviewKeyDown是下钻事件;而KeyDown是冒泡事件

1.2  如果增加  e.Handled = true,见下面代码,则触发顺序为:

window_PreviewKeyDown --> Grid_PreviewKeyDown,后面命令就不执行了

 private void Grid_PreviewKeyDown(object sender, KeyEventArgs e)
 {
     MessageBox.Show("grid - previewkeydown");
     e.Handled = true;
 }

二、作用于按钮的样式

   2.1 如果所有按钮需要同样的样式,则可以使用如下(TargetType="Button")代码:

 <Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="Red"/><Setter Property="FontSize" Value="15"/></Style></Window.Resources>

2.2 给样式命名(x:Key),然后应用到某些控件上(Style="{StaticResource greenButtonStyle}" )

 <Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="DarkGray"/><Setter Property="FontSize" Value="15"/></Style><Style x:Key="greenButtonStyle" TargetType="Button"><Setter Property="Background" Value="Green"/><Setter Property="FontSize" Value="15"/></Style></Window.Resources><Button x:Name="btnFile" Style="{StaticResource greenButtonStyle}"   />

3.使用BasedOn来利用自定义的某类控件的格式

   

<Window.Resources><Style TargetType="Button"><Setter Property="Background" Value="DarkGray"/><Setter Property="Foreground" Value="Red"/><Setter Property="FontSize" Value="15"/><Setter Property="Height" Value="50"/></Style><Style x:Key="greenButtonStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"><Setter Property="Background" Value="Green"/>     </Style><Style x:Key="yellowButtonStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"><Setter Property="Background" Value="Yellow"/></Style></Window.Resources>

4. 公共资源可以放置到:资源字典中:

这样每个窗口都可以使用这些公用的资源字典。

<ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Style/MyButtonStyle.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

5.对控件本身进行样式设定

<Button x:Name="btnFile"  Width="50" HorizontalAlignment="Left"  Grid.Column="0" Grid.Row="0" Margin="0,0,0,0  " Click="btnFile_Click"><Button.Template><ControlTemplate TargetType="Button"><Border Background="White" BorderThickness="4" BorderBrush="Black" CornerRadius="10" ><ContentPresenter Content="文件" HorizontalAlignment="Center" VerticalAlignment="Center"/></Border></ControlTemplate></Button.Template>
</Button>

相关文章:

5.1 WPF路由事件以及文本样式

一、路由事件 WPF中存在一种路由事件&#xff08;routed event&#xff09;&#xff0c;该事件将发送到包含该控件所在层次的所有控件&#xff0c;如果不希望继续向更高的方向传递&#xff0c;只要设置e.Handled true即可。 这种从本控件-->父控件->父的父控件的事件&am…...

Python数据可视化-第1章-数据可视化与matplotlib

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容&#xff0c;本章为第1章 数据可视化与matplotlib 本文主要介绍了什么是数据集可视化&#xff0c;数据可视化的目的&#xff0c;常见的数据可视化方式…...

Flutter敏感词过滤实战:基于AC自动机的高效解决方案

Flutter敏感词过滤实战&#xff1a;基于AC自动机的高效解决方案 在社交、直播、论坛等UGC场景中&#xff0c;敏感词过滤是保障平台安全的关键防线。本文将深入解析基于AC自动机的Flutter敏感词过滤实现方案&#xff0c;通过原理剖析实战代码性能对比&#xff0c;带你打造毫秒级…...

20250331-vue-组件事件1触发与监听事件

触发与监听事件 1 在组件的模板表达式中&#xff0c;可以直接使用 $emit 方法触发自定义事件(例如&#xff1a;在 v-on 的处理函数中)&#xff1a; 子组件代码 <template><button click"$emit(someEvent)">点击</button> </template><…...

Odoo/OpenERP 和 psql 命令行的快速参考总结

Odoo/OpenERP 和 psql 命令行的快速参考总结 psql 命令行选项 选项意义-a从脚本中响应所有输入-A取消表数据输出的对齐模式-c <查询>仅运行一个简单的查询&#xff0c;然后退出-d <数据库名>指定连接的数据库名&#xff08;默认为当前登录用户名&#xff09;-e回显…...

Vue中使用antd-table组件时,树形表格展开配置不生效-defaultExpandedRowKeys-默认展开配置不生效

defaultExpandedRowKeys属性 defaultExpandAllRows这个属性仅仅是用来设置默认值的,只在第一次渲染的时候起作用,后续再去改变,无法实现响应式 解决方案一 a-table表格添加key属性,当每次获取值时,动态改变key,以达到重新渲染的效果 <a-table:key="tableKey"…...

VRRP交换机三层架构综合实验

题目要求&#xff1a; 1&#xff0c;内网Ip地址使用172.16.0.0/16分配 说明可以划分多个子网&#xff0c;图中有2个VLAN&#xff0c;可以根据VLAN划分 2&#xff0c;sw1和SW2之间互为备份 互为备份通常通过VRRP&#xff08;虚拟路由冗余协议&#xff09;来实现。VRRP会在两个…...

基于卷积神经网络的眼疾识别系统,resnet50,efficentnet(pytorch框架,python代码)

更多图像分类、图像识别、目标检测、图像分割等项目可从主页查看 功能演示&#xff1a; 眼疾识别系统resnet50&#xff0c;efficentnet&#xff0c;卷积神经网络&#xff08;pytorch框架&#xff0c;python代码&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介…...

基于srpingboot智慧校园管理服务平台的设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

【力扣hot100题】(026)合并两个有序链表

可以创建一个新链表记录答案&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *…...

TCP网络编程与多进程并发实践

一、引言 在网络编程中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。而多进程并发则是一种提高服务器处理能力的有效手段&#xff0c;允许服务器同时处理多个客户端的请求。本文将详细介绍如何使用 TCP 协议进…...

【前端】一文掌握 Vue 3 指令用法(vue3 备忘清单)

文章目录 入门介绍创建应用应用实例通过 CDN 使用 Vue使用 ES 模块构建版本模板语法文本插值原始 HTMLAttribute 绑定布尔型 Attribute动态绑定多个值使用 JavaScript 表达式仅支持表达式(例子都是无效)调用函数指令 Directives参数 Arguments绑定事件动态参数动态的事件名称修…...

visio导出pdf公式变形

情况描述导出为pdf后&#xff0c;mathtype写的公式就变形了 但是导出为png和jpg就是正常 解决方法就是 需要下载一个Adobe Acrobat...

【学习笔记】计算机网络(六)

第6章应用层 文章目录 第6章应用层6.1 域名系统DNS6.1.1 域名系统概述6.1.2 互联网的域名结构6.1.3 域名服务器域名服务器的分区管理DNS 域名服务器的层次结构域名服务器的可靠性域名解析过程-两种查询方式DNS 高速缓存机制 6.2 文件传送协议6.2.1 FTP 概述6.2.2 FTP 的基本工作…...

做一个多级动态表单,可以保存数据和回显数据

<template> <div class"two"> <button class"save" click"saveBtn">保存数据</button> <button class"sd" click"showBtn">回显数据</button> <div class"all" click&quo…...

量子退火与机器学习(2):少量实验即可找到新材料,黑盒优化➕量子退火

使用量子退火和因子分解机设计新材料 这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。 结合了黑盒优化和量子退火&#xff0c;是融合的非常好的一篇文章&#xff0c;在此分享给大家。 https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.0133…...

WPF中的Adorner基础用法详解与实例

WPF中的Adorner基础用法详解与实例 Adorner&#xff08;装饰器&#xff09;是WPF中一个强大的功能&#xff0c;它允许开发者在现有UI元素之上叠加额外的视觉效果或交互功能&#xff0c;而不会影响原有布局系统。本文将详细介绍Adorner的基础概念、核心用法以及实际应用示例。 …...

【React】基于 React+Tailwind 的 EmojiPicker 选择器组件

1.背景 React 写一个 EmojiPicker 组件&#xff0c;基于 emoji-mart 组件二次封装。支持添加自定义背景 、Emoji 图标选择&#xff01;并在页面上展示&#xff01; 2.技术栈 emoji-mart/data 、emoji-mart : emoji 图标库、元数据 tailwindcss: 原子化 CSS 样式库 antd : 组…...

02-Docker 使用

docker:快速构建、运行、管理应用的工具,可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用 1、部署mysql 先停掉虚拟机中的MySQL,确保你的虚拟机已经安装Docker,且网络开通的情况下,执行下面命令即可安装MySQL(注意:若服务器上已经有mysql 占用了330…...

html5时钟升级!支持切换深浅模式 Canvas实现现代化动态时钟

HTML5 Canvas实现现代化动态时钟 这里写目录标题 HTML5 Canvas实现现代化动态时钟项目介绍技术实现1. 项目架构2. Canvas绘图实现2.1 表盘绘制2.2 刻度绘制2.3 指针绘制 3. 动画效果4. 主题切换 项目亮点技术要点总结项目收获改进方向结语 项目介绍 本项目使用HTML5 Canvas技术…...

MOE-1 基本认识

解读一下MOE架构&#xff0c;部分内容图片参考自油管。 首先来简单了解一下什么是MoE&#xff08;Mixture of Experts&#xff0c;专家混合&#xff09; MoE&#xff08;Mixture of Experts&#xff09;是一种深度学习架构&#xff0c;其核心思想是通过**多个专家网络&#xf…...

【C++接入大模型】WinHTTP类封装:实现对话式大模型接口访问

一、类设计概述 近期准备用C做一些大预言模型方面的开发&#xff0c;先期计划实现C调用公共的大模型Web接口&#xff0c;因为之前没做过C的Web开发&#xff0c;经验少&#xff0c;所以对比了一些主流的框架&#xff0c;包括实际测试验证。以下是Windows平台下主流C HTTP库的对…...

MaxEnt物种分布建模全流程;R+ArcGIS+MaxEnt模型物种分布模拟、参数优化方法、结果分析制图与论文写作

融合R语言的MaxEnt模型具有以下具体优势&#xff1a; 数据处理高效便捷 &#x1f4ca;强大的数据预处理功能&#xff1a;R语言提供了丰富的数据处理工具&#xff0c;能够轻松完成数据清洗、筛选、转换等操作&#xff0c;为MaxEnt模型提供高质量的输入数据。 &#x1f310;自动…...

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…...

python leetcode简单练习(2)

20 有效括号 方法思路 要判断一个仅由括号组成的字符串是否有效&#xff0c;可以使用栈这一数据结构。核心思路是遍历字符串中的每个字符&#xff0c;遇到左括号时压入栈中&#xff0c;遇到右括号时检查栈顶的左括号是否匹配。若匹配则弹出栈顶元素&#xff0c;否则返回false。…...

Android BottomNavigationView 完全自定义指南:图标、文字颜色与选中状态

1. 核心功能概述 通过 Material Design 的 BottomNavigationView&#xff0c;你可以轻松实现以下自定义&#xff1a; ✅ 动态切换选中/默认图标 ✅ 自定义选中与默认文字颜色 ✅ 控制文字显示模式&#xff08;始终显示/仅选中显示/自动隐藏&#xff09; ✅ 添加动画和高级样…...

Kafka 偏移量

在 Apache Kafka 中&#xff0c;偏移量&#xff08;Offset&#xff09;是一个非常重要的概念。它不仅用于标识消息的位置&#xff0c;还在多种场景中发挥关键作用。本文将详细介绍 Kafka 偏移量的核心概念及其使用场景。 一、偏移量的核心概念 1. 定义 偏移量是一个非负整数…...

【NLP】15. NLP推理方法详解 --- 动态规划:序列标注,语法解析,共同指代

动态规划 (Dynamic Programming) 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种通过将问题分解为较小子问题来优化计算效率的技术。它特别适用于优化最优解问题&#xff0c;比如序列标注&#xff08;sequence tagging&#xff09;这类任务。…...

文件分享系统--开源的可视化文件共享管理工具

家里有公网&#xff0c;经常要发文件给别人&#xff0c;文件几个G发送还要云盘或者倒手一次才行&#xff0c;所以弄了个文件分享系统&#xff0c;这个是用字节的 AI Trae 写的&#xff0c;反正反复折腾还是弄出来了。东西挺好用&#xff0c;可以拖拽多个文件上传也可以手动添加…...

【力扣刷题实战】寻找数组的中心下标

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 力扣题目&#xff1a;寻找数组的中心下标 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码&#xff08;C&#xff09; 兄弟们共勉 &#xff01;&#xff01;&#xff01; 每篇前言 博客主页&#…...