覆盖 ComboBox 中的默认 TextBlock 样式

2024-01-10

我在 App.xaml 中定义了默认的 TextBlock 样式,它似乎也会影响 ComboBox 项目的文本颜色。现在,如何显式设置主窗口中定义的 ComboBox 的文本颜色? (我想保留默认样式,但将组合框文本颜色设置为蓝色而不是红色......)

App.xaml

<Application x:Class="WpfApplication1.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         StartupUri="MainWindow.xaml">
<Application.Resources>
    <Style TargetType="{x:Type TextBlock}">
        <Setter Property="Foreground" Value="Red" />
    </Style>
</Application.Resources>

主窗口.xaml

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow">
<Grid>
    <ComboBox Name="comboBox1" SelectedIndex="0" HorizontalAlignment="Left" VerticalAlignment="Top">
        <ComboBoxItem Content = "Item1"/>
        <ComboBoxItem Content = "Item2"/>
        <ComboBoxItem Content = "Item3"/>
    </ComboBox>
</Grid>

我尝试过的事情:

  1. 设置 Combobox.Foreground
  2. 设置 TextElement.Foreground
  3. 设置 TextBlock.Foreground
  4. 在 ComboBox.Resources 中定义另一个隐式 TextBlock 样式
  5. 在 Grid.Resources 中定义另一个隐式 TextBlock 样式
  6. 在 Window.Resources 中定义另一个隐式 TextBlock 样式

大多数隐式 TextBlock 样式将停止在控件边界处,除非您将它们放入Application.Resources

例如,将您的样式放入Window.Resources将使之适用于所有人<TextBlock>对象,但不包括其他控件模板内的文本,例如ComboBox or a Button

我建议将你的风格转移到Window.Resources,然后将您的 ComboBox 项目设计为具有您想要的任何前景色。

<ComboBox.Resources>
    <Style TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Foreground" Value="Blue" />
    </Style>
</ComboBox.Resources>

如果你想保留它Application.Resources,那么我怀疑你需要追踪什么x:Static画笔键用于设置TextBlock.Text颜色并覆盖你的ComboBox.Resources

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

覆盖 ComboBox 中的默认 TextBlock 样式 的相关文章

随机推荐

  • 如何使用 JavaFX 格式化 TextField 中的字符串而不更改其值

    我正在尝试改变 a 的值TextField仅供显示 即 当用户尝试输入电话号码时 他们仅输入数字 当他们离开该字段时 它会显示格式化 而不更改该字段中的数据 假设我有一个TextField对于电话号码 它应该只允许数字 最多 10 个字符
  • PostgreSQL 全文搜索:为什么搜索这么慢?

    我有一个小型 PostgreSQL 数据库 3 000 行 我正在尝试在其中一个文本字段 正文 上设置全文搜索 问题是任何查询都非常慢 35 秒以上 我想问题来自于数据库选择顺序扫描模式的事实 这是我的查询 SELECT ts rank c
  • Jqgrid列标题和数据未对齐

    我有一个动态表 是在 C 后面的代码中生成的 我使用 tabletogrid 将此 html 表转换为 Jqgrid 我用来执行此操作的代码是 tableToGrid gvSearchDocuments height auto autowi
  • Laravel - Livewire,如何自定义全局消息URL?

    使用如下例所示的自定义域并不告诉 Livewire 请求以相同的子域为前缀subdomain1在这个例子中 Route domain subdomain1 env APP DOMAIN localhost gt middleware web
  • 在类型化数组中存储符合泛型协议的对象

    我有一个协议 protocol Adjustable Equatable associatedtype T var id String get set var value T get set init id String value T 以
  • 使用mapstruct中的构建器(使用不可变注释处理器)将对象映射到不可变对象

    我们正在使用不可变框架 http immutables github io 生成所有 DTO 现在我们想将这些对象映射到另一个映射结构 http mapstruct org 但生成的 DTO 是不可变的 没有 setter 和构造函数 这与
  • GCC 4.8.1 无法识别的命令行选项“-std=c++11”

    在网上看了很多文献 看来最近的GCC版本肯定支持 std c 11命令行选项 但由于一些疯狂的原因 即使使用 GCC 4 8 1 我也会得到 无法识别的命令行选项 这没有任何意义 C newmingw mingw32 bin gt g v
  • 如何使用 C# 在 firebird 中执行事务(或多个 sql 查询)

    我尝试了多种方法 包括SO 以下 MYSQL 代码在 Firebird 中不起作用 CREATE TABLE publications INT NOT NULL AUTO INCREMENT PRIMARY KEY id filename
  • powershell删除特定注册表项

    我是 PowerShell 新手 我正在尝试从运行注册表项中删除特定值 我正在使用remove item命令 但是 我没有看到用于指定单个值的开关 我不想删除整个键 只想删除一个值 作为参考 我正在尝试执行的批处理等效项 reg delet
  • 可插入注释处理器 API 可以检索源代码注释吗?

    我正在使用 Java6 的可插入注释处理 api 自动创建一些部署 XML 文件 这些 XML 文件的一部分包含对象的描述 描述始终与与类本身关联的 Javadoc 内容相同 我可以强制注释成为 Block 注释的字段 但这会重复信息 在注
  • 如何在基于时间的模拟游戏中防止基于时间的作弊?

    在iPhone游戏 Tiny Tower 中 我猜测它使用了某种基于上次玩游戏和当前时间之间花费的时间的模拟 因为你可以将当前时间向前设置 你将从假中受益经过的时间跨度 有没有一种算法可以用来防止这种事情发生 或者至少让普通用户很难实现 编
  • 如何在 Scala 中使用命名参数创建自定义函数类型?

    假设我想创建一个名为 ImportFunc 的自定义函数类型 它接受一个名为 fileImportID 的 Int 和一个名为 filename 的字符串 我可以使用类型别名很容易地做到这一点 如下所示 type ImportFunc In
  • 错误“元素不能包含空格。内容模型为空。”是什么意思?意思是?

    我正在为一个简单的 xml 组合一个 xml 模式 请参阅下面的 xml 和模式 但我不断收到有关节节点的以下错误 元素不能包含空格 内容模型为空 浏览网络我找不到任何简洁的解释来解释它的含义 所以我可以修复它 有人可以帮忙吗 编辑 感谢大
  • np.where(条件为 None) 不等于 np.where(条件 == None)

    我对 np where 函数感到困扰 在我的示例中为第 7 行 背景 我正在编写 连四子 游戏 这insert chip 方法访问变量self board这是我个人数据类型的 8x8 np 数组Chip 如果没有chip在一个条目中self
  • Angular 2 HTTP GET 返回 URL null

    我正在尝试使用 Angular 2 和 Typescript 发出一个简单的 HTTP GET 请求 我收到 404 错误 网址为空 下面显示的是我的组件文件以及我收到的错误 import Component OnInit from ang
  • 如何访问成员变量sqlite回调

    我需要从 sqlite 回调函数访问类中的变量 它不能是静态的 因为我需要从其他函数访问这个变量 这是我当前的代码 class fromdb private string paramdb char errmsg string param s
  • Chrome 正在由自动化测试软件控制

    我正在 Chrome 中使用 Serenity BDD Selenium 运行自动化测试 我必须下载新的 ChromeDriver 因为我的测试无法运行 gt 测试将打开 ChromeDriver 但无法 以用户身份浏览 当我用谷歌搜索这个
  • 为什么声明转换不会减少 cookie 大小?

    我正在使用 Azure AD net core 2 1 并已注册我的应用程序并将其配置为返回 AD 组作为声明 我还使用声明转换来删除除我的应用程序使用的三个组之外的所有组声明 这成功地消除了 100 多个组 我这样做是希望能够减少后续请求
  • SQL Server 2008 - 连接字符串

    我需要获取每个行项目的查询结果 并构建一个以分号分隔的组成该项目的材料列表 架构构成 表格 LineItems 唯一项目列表 LineItems Materials 多对多 材料 独特材料清单 行项目 ID 行项目 1 1A 1 LineI
  • 覆盖 ComboBox 中的默认 TextBlock 样式

    我在 App xaml 中定义了默认的 TextBlock 样式 它似乎也会影响 ComboBox 项目的文本颜色 现在 如何显式设置主窗口中定义的 ComboBox 的文本颜色 我想保留默认样式 但将组合框文本颜色设置为蓝色而不是红色 A