WinUI 3.0 桌面:文本框的背景颜色在鼠标悬停时发生变化
WinUI 3.0 Desktop: Background color of TextBox gets changed on mouse over
我已经开始使用 WinUI 3,这是 Microsoft 的新 UI 技术。
我有一个TextBox
,我想设置为只读,即IsReadOnly="True"
(备注:用户仍然可以从中复制内容,这就是为什么我不想将其设置为禁用,即 IsEnabled="False"
.)
将其设置为 IsReadOnly="True"
时,我注意到 TextBox
仍保持其默认的白色背景。我想更改它,以避免用户点击它,因为他们认为可以更改其内容。
我决定为背景设置某种灰色:
<TextBox IsReadOnly="True" Background="SlateGray" Text="The content..."></TextBox>
这按预期工作,但有一个问题:一旦鼠标悬停在 TextBox
上,背景就会变回白色。当鼠标不再位于 TextBox
上时,颜色变回指定的灰色背景色。
在 WPF 中,我会尝试一些 DataTrigger 以保持格式,但在 WinUI.
中没有 DataTriggers(还没有?)
我还尝试在 TextBox
上设置其他与颜色相关的属性,以查看它们是否与上述行为有任何关系,但设置这些并没有改变任何东西:
FocusVisualPrimaryBrush, FocusVisualSecondaryBrush, SelectionHighlightColor, SelectionHighlightColorWhenNotFocused
当鼠标悬停在只读的 `TextBox` 上时,我愿意接受关于如何保持背景颜色的各种建议,谢谢。
您可以覆盖一些主题资源:
<TextBox IsReadOnly="True" Background="SlateGray" Text="The content...">
<TextBox.Resources>
<SolidColorBrush x:Key="TextControlBackgroundPointerOver" Color="SlateGray" />
<SolidColorBrush x:Key="TextControlBackgroundFocused" Color="SlateGray" />
</TextBox.Resources>
</TextBox>
我已经开始使用 WinUI 3,这是 Microsoft 的新 UI 技术。
我有一个TextBox
,我想设置为只读,即IsReadOnly="True"
(备注:用户仍然可以从中复制内容,这就是为什么我不想将其设置为禁用,即 IsEnabled="False"
.)
将其设置为 IsReadOnly="True"
时,我注意到 TextBox
仍保持其默认的白色背景。我想更改它,以避免用户点击它,因为他们认为可以更改其内容。
我决定为背景设置某种灰色:
<TextBox IsReadOnly="True" Background="SlateGray" Text="The content..."></TextBox>
这按预期工作,但有一个问题:一旦鼠标悬停在 TextBox
上,背景就会变回白色。当鼠标不再位于 TextBox
上时,颜色变回指定的灰色背景色。
在 WPF 中,我会尝试一些 DataTrigger 以保持格式,但在 WinUI.
中没有 DataTriggers(还没有?)我还尝试在 TextBox
上设置其他与颜色相关的属性,以查看它们是否与上述行为有任何关系,但设置这些并没有改变任何东西:
FocusVisualPrimaryBrush, FocusVisualSecondaryBrush, SelectionHighlightColor, SelectionHighlightColorWhenNotFocused
当鼠标悬停在只读的 `TextBox` 上时,我愿意接受关于如何保持背景颜色的各种建议,谢谢。
您可以覆盖一些主题资源:
<TextBox IsReadOnly="True" Background="SlateGray" Text="The content...">
<TextBox.Resources>
<SolidColorBrush x:Key="TextControlBackgroundPointerOver" Color="SlateGray" />
<SolidColorBrush x:Key="TextControlBackgroundFocused" Color="SlateGray" />
</TextBox.Resources>
</TextBox>