Winui3:当Grid内的一个子控件收到焦点时,我该如何改变它的颜色?

匿名
2024-01-30T06:55:59.4066667+00:00

我有一个Gird,Grid中的每个元素都是一个TextBox。 我想要在TextBox收到焦点时,改变它的背景颜色。 我尝试在 GotFocus 事件中更改文本框的背景颜色。它的确改变了文本框的背景颜色,但当文本框有焦点时,背景颜色被默认的白色覆盖。

winui-desktop-2022-10-27-18-41-46 在上面的图片中中,我在 GotFocus 事件中更改了company 1 的背景颜色。但当它有焦点时,背景颜色被覆盖了。这是否与不透明度有关?

此问题由WinUI3: How to change color of child element of Grid when it receives focus 总结而来

Windows 开发 | Windows 应用 SDK
0 个注释 无注释
{count} 票

问题作者接受的答案
  1. Junjie Zhu - MSFT 21,731 信誉分
    2024-01-30T08:57:02.8766667+00:00

    你好,

    欢迎来到微软问答!

    使用事件 GotFocus 并不能达到您想要的效果。

    建议您修改TextBox的样式。

    您可以参考控件样式和模板来修改您需要修改的颜色属性(如TextControlBackgroundFocused)。

    设置样式请参考这篇文档 每个控件的样式设置

     <TextBox x:Name="TextBox1_1" Text="1-1" Grid.Row="0" Grid.Column="0" >  
                    <TextBox.Resources>  
                        <ResourceDictionary>  
                            <ResourceDictionary.ThemeDictionaries>  
                                <ResourceDictionary x:Key="Light" >  
                                    <SolidColorBrush x:Key="TextControlForegroundPointerOver" Color="blue" />  
                                    <SolidColorBrush x:Key="TextControlBackgroundFocused" Color="Red" />  
                                    <SolidColorBrush x:Key="TextControlBorderBrush" Color="Yellow" />  
                                </ResourceDictionary>  
                            </ResourceDictionary.ThemeDictionaries>  
                        </ResourceDictionary>  
                    </TextBox.Resources>  
                </TextBox>  
    

    谢谢

    ---如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想收到该主题的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。