WPF:应用程序启动时按钮发光

WPF: Button glows when app is started

我有一个看似简单的小问题,但我不知道如何解决。在 Visual Studio 中,我使用 WPF 制作了这个应用程序,并在带有行和列的网格中放置了一些按钮。现在,每次我启动我的应用程序时,第一行中的第一个按钮都会发光,就好像它被点击了一样。我觉得这看起来很奇怪,我希望我的按钮看起来像其他按钮。有没有可能阻止它? 在此先感谢您的帮助!

如果您描述的行为是焦点动画,您可以使用 Control.Focus() 函数在另一个控件中设置焦点。

another_control.Focus();

您可以检查是否是焦点样式困扰您点击 Tab 键将焦点设置到下一个控件。

您需要为按钮使用 Style,在 Style 中设置按钮的所有属性,如 BackgroundForeground 并且您还可以分配 triggers 用于按钮上的各种事件。这将防止按钮持续闪烁。

下面是上面的示例(默认情况下我将按钮设置为蓝色)

在XAML

   <Page>
        <Page.Resources>
                <Style TargetType="{x:Type Button}" x:Key="NonFocusButton">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border Name="Border" 
                        Background="Blue"
                        BorderBrush="Blue">
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Button.IsPressed" Value="True">
                                    <Setter TargetName="Border" Property="BorderBrush" Value="Blue" />
                                </Trigger>
                                <Trigger Property="IsMouseOver" Value="true">
                                    <Setter TargetName="Border" 
                              Property="Background" Value="Blue" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

        <Button x:Name"myButton" Style="{StaticResource NonFocusButton}" /> //Assign style here
        </Page.Resources>
    </Page>

在 Window.Loaded 事件中你可以尝试:

Keyboard.ClearFocus();

它对我有用。

注意:该方法只是清除逻辑焦点,在任何场景下都没有用。