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

WPF 完美解决改变指示灯的颜色

WPF 完美解决改变指示灯的颜色

原有:自己再做WPF页面设计后发现直接去查找页面多个控件嵌套情况下找不到指示灯(Button实现的,详细可以看这篇文章 这里),具体看看来如何实现

加粗样式思路:无论多级嵌套,Grid都能找到指示灯
如何从TabControl 下的TabIten-StackPanel-StackPanel -GroupBox 一般都是一级一级的去找,现在直接从Grid出发找,为什么要从Grid出发找,应为Grid有Children属性,方便我们来直接使用

XAML

 <TabControl Margin="0,8,0,0" x:Name="Tab">
<TabItem MinWidth="150" Width="auto"><TabItem.Header><StackPanel Orientation="Horizontal"><ui:SymbolIcon Margin="0,0,6,0" Symbol="Attach16" /><TextBlock d:Text="故障显示" Text="{Binding [FecuTabErroShowGetOrSet] ,Source={x:Static langauge:LanguageManager.Instance}}"/></StackPanel></TabItem.Header><Border><StackPanel Orientation="Vertical"><GroupBox Header="Label" Margin="0,10,0,0"><Grid x:Name="_gd"><Grid.RowDefinitions><RowDefinition Height="*"/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="auto"/><ColumnDefinition Width="60"/></Grid.ColumnDefinitions><Label Content="Item 1" Grid.Row="0" Grid.Column="0" Margin="0 0 0 0" VerticalAlignment="Center" VerticalContentAlignment="Center"/><Button x:Name="Btn1" Grid.Row="0" Grid.Column="1" Width="25" Height="25" Margin="20 5 5 5 "><Button.Template><ControlTemplate TargetType="Button"><Grid><!-- 外边框 --><Ellipse Stroke="Gray" StrokeThickness="2"><Ellipse.Fill><RadialGradientBrush><GradientStop Color="White" Offset="0"/><GradientStop Color="Gray" Offset="1"/></RadialGradientBrush></Ellipse.Fill></Ellipse><!-- 内部绿色圆形 --><Ellipse Width="20" Height="20" x:Name="elp"><Ellipse.Fill><RadialGradientBrush><GradientStop Color="LightGray" Offset="0"/><GradientStop Color="Gray" Offset="1"/></RadialGradientBrush></Ellipse.Fill></Ellipse></Grid></ControlTemplate></Button.Template></Button></Grid></GroupBox></StackPanel> </Border></TabItem></TabControl>

CS

 Grid gb = this.FindName(gridName) as Grid;foreach (var child in gb.Children){if (child is System.Windows.Controls.Button btn){if (btn.Name == buttonName){switch (statusEnum){ SetButtonRedColor(btn, btn.Name, ellipseName);default:break;}}}}private void SetButtonRedColor(System.Windows.Controls.Button titleButton, string titleControlName, string tagControlName){System.Windows.Controls.Button button1 = (System.Windows.Controls.Button)this.FindName(titleControlName);System.Windows.Shapes.Ellipse tag = (System.Windows.Shapes.Ellipse)button1.Template.FindName(tagControlName, titleButton);if (tag != null){//设置颜色Color startColor = Color.FromRgb(255, 0, 0);Color endColor = Color.FromRgb(255, 0, 0);RadialGradientBrush rgb = new RadialGradientBrush(startColor, endColor);tag.Fill = rgb;}else{//找元素var template = button1.Template;if (template != null){// 从模板中获取根元素var rootElement = template.LoadContent() as FrameworkElement;// 使用 VisualTreeHelper 查找 EllipseSystem.Windows.Shapes.Ellipse tag1 = FindChild<System.Windows.Shapes.Ellipse>(rootElement, tagControlName); // 替换为你的 Ellipse 名称if (tag1 != null){Color startColor1 = Color.FromRgb(255, 0, 0);Color endColor1 = Color.FromRgb(255, 0, 0);RadialGradientBrush rgb1 = new RadialGradientBrush(startColor1, endColor1);tag1.Fill = rgb1;}}}}

指示灯实现
https://blog.csdn.net/Laity07/article/details/144197550?spm=1001.2014.3001.5502

相关文章:

WPF 完美解决改变指示灯的颜色

WPF 完美解决改变指示灯的颜色 原有&#xff1a;自己再做WPF页面设计后发现直接去查找页面多个控件嵌套情况下找不到指示灯&#xff08;Button实现的&#xff0c;详细可以看这篇文章 这里&#xff09;&#xff0c;具体看看来如何实现 加粗样式思路&#xff1a;无论多级嵌套&a…...

Flutter/Dart:使用日志模块Logger Easier

Flutter笔记 Flutter/Dart&#xff1a;使用日志模块Logger Easier Logger Easier 是一个为 Dart 和 Flutter 应用程序量身定制的现代化日志管理解决方案。它提供了一个高度灵活、功能丰富的日志记录系统&#xff0c;旨在简化开发者的日志管理工作&#xff0c;同时提供一定的定制…...

阿里云云服务器初始化

如果我们的云服务器出现无法挽回的错误时&#xff0c;我们可以尝试初始化云服务器进行解决。 首先搜索阿里云&#xff08;你要先确认自己已经购买了阿里云的云服务器&#xff09;&#xff1a; 登录账号后主页向下划 进入后点击管理控制台 点击进入后可以看到正在运行&#xff0…...

Python中SKlearn的K-means使用详解

文章目录 Python中SKlearn的K-means使用详解一、引言二、K-means算法原理三、使用SKlearn进行K-means聚类的步骤1、导入必要的库2、生成数据集3、创建K-means模型并设置参数4、训练模型5、预测簇标签6、可视化结果 四、总结 Python中SKlearn的K-means使用详解 一、引言 K-mea…...

红帽RHCE认证适用哪些人学习

红帽 RHCE工程师认证有着广泛的适用人群。对于初入 IT 行业的新手来说&#xff0c;RHCE 是快速建立专业基础、提升自身竞争力的绝佳途径。它能帮助新人系统地学习 Linux 系统知识&#xff0c;从基础的安装配置到复杂的网络服务管理&#xff0c;一步一个脚印地构建起坚实的技术框…...

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…...

《Java核心技术I》Swing中的边框

边框 BorderFactory静态方法创建边框&#xff0c;凹斜面&#xff0c;凸斜面&#xff0c;蚀刻&#xff0c;直线&#xff0c;蒙版&#xff0c;空白。 边框添加标题&#xff0c;BorderFactory.createTitledBorder 组合边框&#xff0c;BorderFactory.createCompoundBorder JCo…...

MySQL 中的常见错误与排查

在 MySQL 数据库的日常运维中&#xff0c;管理员可能会遇到各种错误。无论是查询性能问题、连接异常、数据一致性问题&#xff0c;还是磁盘空间不足等&#xff0c;及时排查并解决这些问题是保证数据库稳定运行的关键。本文将列出 MySQL 中一些常见的错误及其排查方法。 一、连接…...

SQL 查询方式比较:子查询与自连接

在 SQL 中&#xff0c;子查询和自连接是两种常见的查询方式&#xff0c;它们的功能虽然可以相同&#xff0c;但实现的方式不同。本文通过具体示例&#xff0c;深入探讨这两种查询方式&#xff0c;并配合数据展示&#xff0c;帮助大家理解它们的使用场景和差异。 数据示例 假设…...

Linux下学【MySQL】所有常用类型详解( 配实操图 通俗易懂 )

每日激励&#xff1a;“当你觉得你会幸运时&#xff0c;幸运就会眷顾你&#xff0c;所以努力吧&#xff0c;只要你把事情做好&#xff0c;并觉得你会幸运&#xff0c;你将会变得幸运且充实。” 绪论​&#xff1a; 本章继续学习MySQL的知识&#xff0c;本章主要讲到mysql中的所…...

Gin-vue-admin(1):环境配置和安装

目录 环境配置如果443网络连接问题&#xff0c;需要添加代理服务器 后端运行前端运行 环境配置 git clone https://gitcode.com/gh_mirrors/gi/gin-vue-admin.git到server文件目录下 go mod tidygo mod tidy 是 Go 语言模块系统中的一个命令&#xff0c;用于维护 go.mod 文件…...

如何在centos系统上挂载U盘

在CentOS上挂载NTFS格式的U盘,需要执行一系列步骤,包括识别U盘设备、安装必要的软件、创建挂载点,并最终挂载U盘。以下是在CentOS上挂载NTFS格式U盘的详细步骤: 一、准备工作 确认CentOS版本: 确保你的CentOS系统已经安装并正常运行。不同版本的CentOS在命令和工具方面可能…...

2024年12月大语言模型最新对比:GPT-4、Claude 3、文心一言等详细评测

前言 随着人工智能技术的快速发展&#xff0c;大语言模型(LLM)已经成为了技术领域最热门的话题。本文将详细对比目前主流的大语言模型&#xff0c;帮助大家选择最适合的工具。 一、OpenAI GPT系列 1. GPT-4 核心优势&#xff1a; 多模态理解能力强 逻辑推理能力出色 创造…...

openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接

symbols-unix 文件部分内容 JVM_IHashCode JVM_InitClassName JVM_InitStackTraceElement JVM_InitStackTraceElementArray JVM_InitializeFromArchive JVM_InternString 要理解在 symbols-unix 文件中包含 JVM_InternString 方法的原因&#xff0c;我们需要从构建过程、符号…...

day16 python(4)——UnitTest

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、UnitTest框架介绍 1.1 UnitTest框架 1.2 unitTest的组成&#xff08;5部分&#xff09; 1.2.1 TestCase&#xff08;测试用例&#xff09; 1.2.2 TestSuit 和 TestRunner 【方法1】 【方法2】 1…...

Kafka快速扫描

Architecture 系统间解耦&#xff0c;异步通信&#xff0c;削峰填谷 Topic 消息主题&#xff0c;用于存储消息 Partition 分区&#xff0c;通过扩大分区&#xff0c;可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道&#xff1a…...

python打包时候遇到问题:ImportError: DLL load failed while importing _ufuncs: 找不到指定的模块

问题&#xff1a;python打包时候遇到问题&#xff1a;ImportError: DLL load failed while importing _ufuncs: 找不到指定的模块 解决方法 pip uninstall scipy pip install scipy总结&#xff1a;卸载出问题的库并重新安装&#xff0c;再次通过pyinstaller -F -w xxx.py 打包…...

【6】期末复习C#第6套

1.两个指针变量不能 2.函数可以有也可以没有形参 3.开始执行点是程序中的main函数 4.调用函数时形参和实参各占一个独立的存储单元 5.给指针赋NULL值和地址值 6.函数头和函数体 7.&#xff08;C&#xff09;形式参数是局部变量 8.在C语言中&#xff0c;一维数组的定义方…...

开源轮子 - EasyExcel01(核心api)

EasyExcel01 - 核心api 本文整理自掘金大佬 - 竹子爱熊猫 https://juejin.cn/post/7405158045662576640 文章目录 EasyExcel01 - 核心api一&#xff1a;初相识EasyExcel1&#xff1a;写入excel入门2&#xff1a;读取Excel入门 二&#xff1a;数据模型注解1&#xff1a;读写通用…...

SpringBoot3+Vue3开发在线考试系统

项目介绍 项目分为3种角色&#xff0c;分别为&#xff1a;超级管理员、老师、学生。超级管理员&#xff0c;负责系统的设置、角色的创建、菜单的管理、老师的管理等功能&#xff0c;也可以叫做系统管理员&#xff1b;老师角色&#xff0c;负责系统业务的管理&#xff0c;包括学…...

Agentic AI 元素周期表:拆解智能体时代的完整技术体系,读懂 2026 年 AI 的核心游戏规则

很多人已经用了几个月甚至几年的 AI&#xff0c;每天和 ChatGPT、Claude 打交道&#xff0c;写 Prompt、调用工具、体验各类 AI 应用&#xff0c;却始终逃不开一个核心困惑&#xff1a;你看似在用 AI&#xff0c;却根本不懂它背后完整的运行逻辑。你知道 LLM 能生成文本&#x…...

Kettle(二)资源库配置实战:从创建到高效连接

1. 为什么需要Kettle资源库&#xff1f; 第一次接触Kettle时&#xff0c;我习惯把转换和作业脚本直接保存在本地。直到某天电脑突然蓝屏&#xff0c;辛苦写好的ETL脚本全部丢失&#xff0c;才意识到资源库的重要性。Kettle资源库就像是一个"代码保险箱"&#xff0c;它…...

2026年云储存哪个好用?5款免费又便捷的工具深度盘点

在如今这个数字化时代&#xff0c;云储存软件成为了我们存储、管理和共享数据的得力助手。无论是个人用户保存生活照片、工作文档&#xff0c;还是企业团队协作共享资源&#xff0c;都离不开云储存。 然而市场上软件众多&#xff0c;到底哪个才真正好用&#xff1f;为了帮助大…...

Pixel Dream Workshop实操手册:VAE Tiling开启前后显存占用与渲染质量对比

Pixel Dream Workshop实操手册&#xff1a;VAE Tiling开启前后显存占用与渲染质量对比 1. 引言 Pixel Dream Workshop&#xff08;像素幻梦创意工坊&#xff09;是一款基于FLUX.1-dev扩散模型的像素艺术生成工具。它采用了独特的16-bit像素风格界面设计&#xff0c;为创作者提…...

塑胶件防裂实践:3D检测亲测有效

行业痛点分析在精密制造领域&#xff0c;塑胶件开裂是长期困扰工程师的顽疾。传统检测手段&#xff0c;如卡尺、三坐标测量机&#xff08;CMM&#xff09;或二维影像测量&#xff0c;存在明显局限。它们难以对复杂曲面、内部应力集中区域进行非接触式、全尺寸的量化评估&#x…...

LFM2.5-1.2B-Thinking-GGUF开源镜像详解:llama.cpp免下载零配置部署

LFM2.5-1.2B-Thinking-GGUF开源镜像详解&#xff1a;llama.cpp免下载零配置部署 1. 模型与平台介绍 LFM2.5-1.2B-Thinking-GGUF 是由 Liquid AI 开发的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该镜像基于 llama.cpp 运行时构建&#xff0c;内置预转换的 GGUF…...

门户网站被入侵了怎么办?从紧急止损到重建免疫的完整作战手册

当监控警报响起&#xff0c;发现服务器存在异常进程、网站首页或核心栏目内容被恶意篡改、或数据库出现不明查询时&#xff0c;一个可怕的现实摆在眼前&#xff1a;您的门户网站已经被入侵了。门户网站作为企业或机构的官方形象窗口&#xff0c;一旦被入侵&#xff0c;不仅直接…...

如何快速美化Windows任务栏:TranslucentTB完全指南

如何快速美化Windows任务栏&#xff1a;TranslucentTB完全指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了Windows系统一…...

快速体验语义搜索:用Qwen3-Embedding-4B搭建个人知识库

快速体验语义搜索&#xff1a;用Qwen3-Embedding-4B搭建个人知识库 1. 认识Qwen3-Embedding-4B&#xff1a;你的智能语义理解助手 想象一下&#xff0c;你有一个能理解各种语言、能记住海量文档内容、还能帮你快速找到相关信息的智能助手。这就是Qwen3-Embedding-4B能为你做的…...

Android蓝牙HFP连接实战:从SDK调用到底层状态机全解析(附避坑指南)

Android蓝牙HFP连接实战&#xff1a;从SDK调用到底层状态机全解析&#xff08;附避坑指南&#xff09; 在移动设备互联场景中&#xff0c;蓝牙免提协议&#xff08;HFP&#xff09;作为语音通话的核心传输通道&#xff0c;其连接稳定性直接影响用户体验。本文将深入Android蓝牙…...