WPF Win7和Win10 TextBox 使能false时,背景色属性触发不生效问题

2023-11-08 00:50

本文主要是介绍WPF Win7和Win10 TextBox 使能false时,背景色属性触发不生效问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近做一个WPF项目,添加一个自定义的整数加减控件,该控件分为三部分,左边是“数值减”,中间是TextBox输入框显示数值、右边是“数值加”;效果图入下图所示。

问题:在Win7系统下,设置该控件使能为False时,TextBox背景色变成白色,样式里面写的触发器不生效;

          在Win10系统下,设置该控件IsEnabled="False"时,颜色变化更改正常显示;

故编写该文章,以便以后遇到此类问题,能有点作用。

部分界面xaml代码如下:

<Style TargetType="{x:Type local:NumBntText}"><Setter Property="FontSize" Value="14"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type local:NumBntText}"><Border CornerRadius="5" BorderThickness="0,0,0,0" BorderBrush="{DynamicResource border_color}" Background="{DynamicResource Backgr_color}" Focusable="False"><Grid Width="{TemplateBinding Width}"><Grid.ColumnDefinitions><ColumnDefinition Width="auto"/><ColumnDefinition/><ColumnDefinition Width="auto"/></Grid.ColumnDefinitions><Button x:Name="nbtnminus" Grid.Column="0" Width="35" Content="-" Style="{StaticResource Button_Text}" BorderBrush="LightBlue"/><TextBox Grid.Column="1" VerticalAlignment="Center" VerticalContentAlignment="Center" BorderThickness="0" Name="textBox" TextAlignment="Center" Background="Transparent" Foreground="{DynamicResource textblock_txt}"Text="{Binding Number,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource TemplatedParent}}""/><Button x:Name="nbtn" Grid.Column="2" Width="35" Content="+" Style="{StaticResource Button_TextTwo}" BorderBrush="LightBlue"/></Grid></Border><ControlTemplate.Triggers><Trigger Property="IsEnabled" Value="False"><Setter Property="Background" Value="{DynamicResource Backgr_color}"/><Setter Property="Foreground" Value="{DynamicResource textblock_txt}"/><Setter TargetName="textBox" Property="Background" Value="{DynamicResource Backgr_color}"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter>
</Style>

解决:删除触发器代码 并且 改写TextBox控件模板即可解决该问题;       

改写 TextBox 模板代码示例:

<Style TargetType="{x:Type TextBox}"><Setter Property="FontSize" Value="14"/><Setter Property="Background" Value="{DynamicResource Backgr_color}"/><Setter Property="Foreground" Value="{DynamicResource textblock_txt}"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TextBox"><Border Name="Bd" BorderThickness="{TemplateBinding BorderThickness}"  BorderBrush="{TemplateBinding BorderBrush}"  Background="{TemplateBinding Background}" SnapsToDevicePixels="true"><ScrollViewer Name="PART_ContentHost" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" FontSize="{TemplateBinding FontSize}"   SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" FontFamily="{TemplateBinding FontFamily}" /></Border><ControlTemplate.Triggers><Trigger Property="IsEnabled" Value="False"><Setter Property="Background" Value="{DynamicResource Backgr_color}"/><Setter Property="Foreground" Value="{DynamicResource textblock_txt}"/><Setter TargetName="PART_ContentHost" Property="Background" Value="{DynamicResource Backgr_color}"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter>
</Style>

 

这篇关于WPF Win7和Win10 TextBox 使能false时,背景色属性触发不生效问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367017

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

解决java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误的问题

《解决java.util.RandomAccessSubListcannotbecasttojava.util.ArrayList错误的问题》当你尝试将RandomAccessSubList... 目录Java.util.RandomAccessSubList cannot be cast to java.