WPF:应用程序启动时按钮发光
WPF: Button glows when app is started
我有一个看似简单的小问题,但我不知道如何解决。在 Visual Studio 中,我使用 WPF 制作了这个应用程序,并在带有行和列的网格中放置了一些按钮。现在,每次我启动我的应用程序时,第一行中的第一个按钮都会发光,就好像它被点击了一样。我觉得这看起来很奇怪,我希望我的按钮看起来像其他按钮。有没有可能阻止它?
在此先感谢您的帮助!
如果您描述的行为是焦点动画,您可以使用 Control.Focus() 函数在另一个控件中设置焦点。
another_control.Focus();
您可以检查是否是焦点样式困扰您点击 Tab 键将焦点设置到下一个控件。
您需要为按钮使用 Style
,在 Style
中设置按钮的所有属性,如 Background
、 Foreground
并且您还可以分配 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();
它对我有用。
注意:该方法只是清除逻辑焦点,在任何场景下都没有用。
我有一个看似简单的小问题,但我不知道如何解决。在 Visual Studio 中,我使用 WPF 制作了这个应用程序,并在带有行和列的网格中放置了一些按钮。现在,每次我启动我的应用程序时,第一行中的第一个按钮都会发光,就好像它被点击了一样。我觉得这看起来很奇怪,我希望我的按钮看起来像其他按钮。有没有可能阻止它? 在此先感谢您的帮助!
如果您描述的行为是焦点动画,您可以使用 Control.Focus() 函数在另一个控件中设置焦点。
another_control.Focus();
您可以检查是否是焦点样式困扰您点击 Tab 键将焦点设置到下一个控件。
您需要为按钮使用 Style
,在 Style
中设置按钮的所有属性,如 Background
、 Foreground
并且您还可以分配 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();
它对我有用。
注意:该方法只是清除逻辑焦点,在任何场景下都没有用。