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>