C# 按钮控件在单击并处理事件后一直闪烁

C# 按钮控件在单击并处理事件后一直闪烁,c#,wpf,button,windows-7,C#,Wpf,Button,Windows 7,这与WPF和C#有关。我的程序中有几个按钮,当它们被点击时,即使在处理一个事件之后,它们也会继续闪烁。例如,我所拥有的按钮中有一个应该根据用户输入打开一个新窗口。如果用户的输入不正确,MessageBox会出现这样的提示。一旦我关闭MessageBox,按钮开始闪烁。如果用户输入正确,将打开新窗口。一旦我从新窗口点击到旧窗口,按钮开始闪烁;如果我关闭新窗口,按钮开始闪烁 我尝试在与此按钮相关的所有代码中使用此.Focus(),以获得主窗口上的焦点。我试着使用e.Handled=true,但似乎没

这与WPF和C#有关。我的程序中有几个按钮,当它们被点击时,即使在处理一个事件之后,它们也会继续闪烁。例如,我所拥有的按钮中有一个应该根据用户输入打开一个新窗口。如果用户的输入不正确,MessageBox会出现这样的提示。一旦我关闭MessageBox,按钮开始闪烁。如果用户输入正确,将打开新窗口。一旦我从新窗口点击到旧窗口,按钮开始闪烁;如果我关闭新窗口,按钮开始闪烁

我尝试在与此按钮相关的所有代码中使用此.Focus(),以获得主窗口上的焦点。我试着使用e.Handled=true,但似乎没有什么能阻止它。我不想通过将该属性设置为false使按钮不可聚焦,因为我希望我的程序可以访问

知道发生了什么事吗

下面是按钮的XAML代码:

<Button x:Name="btnSearch" Content="Search" Background="#4a89be" Foreground="White"
        MouseEnter="Button_MouseEnter" MouseLeave="Button_MouseLeave"
        Click="btnSearch_Click" />

对于任何对如何在不禁用“聚焦”按钮的情况下消除此行为感兴趣的人:

执行操作后,只需将焦点重定向到另一个控件,例如按钮旁边的文本框:txtBox.focus()


为我工作。我找不到另一个简单的方法。

你知道这里说的“闪烁”是Windows的默认设置,是吗?尝试进入控制面板->区域设置->附加设置,然后关闭弹出窗口,观察附加设置按钮中相同的“闪烁”。@HighCore Ha,你完全正确。。。。我以为有东西坏了。那么,我该如何摆脱那些让人分心的闪光呢。我太习惯于在Win8中开发,所以这对我来说很奇怪。
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
    if (!String.IsNullOrEmpty(txtNumber.Text.ToString()) && txtNumber.Text.ToString().Length >= 10)
    {
        if (QueryWindow == null)
        {
            QueryWindow = new DatabaseQueryWindow();
            QueryWindow.Show();
            QueryWindow.Closed += new EventHandler(QueryWindow_Closed);
        }
        else if (QueryWindow != null && !QueryWindow.IsActive)
        {
            QueryWindow.Activate();
        }

            QueryDB();
        }
   else
   {
       MessageBox.Show("Please enter a valid # (Format: YYYYmm####)");
   }
}

void QueryWindow_Closed(object sender, EventArgs e)
{
    QueryWindow = null;
}


private void Button_MouseEnter(object sender, MouseEventArgs e)
{
    Button b = sender as Button;
    if (b != null)
    {
        b.Foreground = Brushes.Black;
    }
}
private void Button_MouseLeave(object sender, MouseEventArgs e)
{
    Button b = sender as Button;
    if (b != null)
    {
        b.Foreground = Brushes.White;
    }
}