文本框选择颜色和选择括号颜色

Posted

技术标签:

【中文标题】文本框选择颜色和选择括号颜色【英文标题】:TextBox selection color and selection brackets color 【发布时间】:2014-12-17 16:54:47 【问题描述】:

我正在为通用应用程序(Windows 和 Windows Phone)设计一个 TextBox 控件。我发现选择颜色可以通过“SelectionHighlightColor”属性(图片上的蓝色)设置。但不知何故,选择括号似乎保持系统强调色(在我的情况下为绿色):

如何设置括号颜色或重新定义强调色?

更新:

我尝试重新定义很多主题画笔和颜色,例如:

((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Color.FromArgb(0xFF, 0x00, 0x00, 0xFF);

(Resources["PhoneAccentColor"]) = Color.FromArgb(0xFF, 0x00, 0xFF, 0xFF);

这确实重新定义了重音,但对括号没有任何影响。它们仍然是绿色的......

【问题讨论】:

如果您在文档中找不到它,或者在模板中找不到它,您可能只需要挖掘默认画笔资源并找到那个绿色并覆盖它。希望我能在脑海中知道答案,或者有时间去挖掘并找出答案。 我会尝试使用Snoop、Wpf Inspector 或Mole 等工具找出这些括号的样式来自何处。不幸的是,我不知道这些中的任何一个是否能够连接到通用应用程序中,但值得一试。 (我不能像在 Windows 7 上那样尝试,所以不能构建通用应用程序:()。 我唯一的另一个想法是括号可能是图像资源而不是颜色。 遗憾的是,这两种工具都不能检查通用应用程序。关于您对图像资源的建议 - 不要这么认为,因为它会根据手机口音(在操作系统设置中设置)而变化。 【参考方案1】:

您应该能够向您的应用程序添加新资源。然后你只需引用它。

<Application.Resources>
    <SolidColorBrush x:Key="AppAccentBrush" Color="#012345"/>
</Application.Resources>

然后你会在你的页面中引用这样的:

<TextBlock Text="Custom Accent" Style="StaticResource PhoneTextNormalStyle"
           Foreground="StaticResource AppAccentBrush"/>

您可以查看also。虽然它是法语,但它在这个目标上有很多有用的内容。希望这会有所帮助。

【讨论】:

不幸的是,这无济于事。这只是在同名主题资源之外添加了一个静态资源,对括号颜色没有影响。【参考方案2】:

您是否尝试过文本框的 caretbrush 属性:

XAML 属性示例如下:

<TextBox CaretBrush="colorString"/>

如需进一步使用,请查看以下文档。

参考:Textbox Documentation

编辑:

正如您所提到的,您使用的文本框是不同的,我检查了通用应用程序不再使用属性 CaretBrush: Windows Phone 8.1 (Silverlight) vs Windows Phone 8.1

看看这个笔记:

注意:被移除的类型或成员并不一定意味着它不再可用。已移除的类型可能表明该类型已移至另一个未被考虑的命名空间或程序集。已删除的成员可能仍可用于基类。

CaretBrush 属性在 System.Windows.Controls 命名空间中可用。

【讨论】:

错误的文本框。就我而言,它是 Windows.UI.Xaml.Controls.TextBox。 原因 System.Windows.Controls 不是通用应用程序开发的案例。 好的。但是,是的,不能再为通用应用更改 CaretBrush 属性。

以上是关于文本框选择颜色和选择括号颜色的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5:根据选择的元素与数据框中的另一个元素匹配设置自定义组合框文本的字体颜色

颜色组合框和自定义颜色选择器

使用android中的颜色选择器更改textview的文本颜色和背景颜色

边框颜色怎么设置

自定义 CTreeCtrl - 如何修改文本/选择颜色

easyui如何修改指定必填项下拉文本框边框的颜色?