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

Roy Li - MSFT 32,466 信誉分 Microsoft 供应商
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 应用 SDK
Windows 应用 SDK
一组 Microsoft 开源库、框架、组件和工具,可供各种应用使用,以便在多个版本的 Windows 上访问 Windows 平台功能。 以前称为 Project Reunion。
15 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Junjie Zhu - MSFT 15,601 信誉分 Microsoft 供应商
    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 个其他答案

排序依据: 非常有帮助