【问题标题】:WPF Window loses focus after poping up in ListBoxItem's double click event handler [duplicate]WPF Window在ListBox Item双击事件处理程序中弹出后失去焦点[重复]
【发布时间】:2015-04-24 22:34:34
【问题描述】:

我想在新窗口的ListBox 中显示一些对象的详细信息,所以我在ListBoxItemMouseDoubleClick 处理程序中创建并显示一个新窗口。

这是一个例子:

MainWindow.xaml:

<Window x:Class="Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ListBox>
        <ListBoxItem MouseDoubleClick="ListBoxItem_MouseDoubleClick" Content="Test" />
    </ListBox>
</Window>

MainWindow.xaml.cs:

using System.Windows;
using System.Windows.Input;

namespace Test
{
    /// <summary>
    ///     Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ListBoxItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            (new Window()).Show();
        }
    }
}

如果我双击“测试”项,会弹出一个新窗口,然后很快失去焦点。为什么?如何防止新事物失去焦点?

另外,我不想使用ShowDialog 方法,因为我可能需要同时打开多个窗口。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    在鼠标单击事件(或其他 UI 事件)中间执行 UI 操作通常会导致不良行为,例如您所看到的。请参阅此答案以获取解决方法:WPF TreeView restores its focus after double click

    【讨论】:

      猜你喜欢
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 2013-05-02
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多