关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

云南大王-Popup中ListBox的SelectChange事件关闭弹出窗体后主窗体点击无效BUG

发布时间:2020-04-16 00:00:00
WPF的BUG!弹出框的 自定义控件里有Popup, Popup里面放一个ListBox  在ListBox中的SelectionChange事件触发关闭弹出框后,主窗体存在一定概率卡死(但点击标题又能用的BUG)   步骤一: 新建个自定义WPF控件UserControl Xaml代码: > 逻辑代码: public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); List> tupes = new List>(); Enumerable.Range(1, 10).Select(p => p.ToString().PadLeft(3, '0')).ToList().ForEach(p => tupes.Add(new Tuple(p, p, p))); listboxSuggestion.ItemsSource = tupes; listboxSuggestion.SelectionChanged += (o1, e1) => { RoutedEventArgs args = new RoutedEventArgs(EnterDownEvent, o1); //选中项改变触发 this.RaiseEvent(args); }; } #region 回车触发事件 //声明和注册路由事件 public static readonly RoutedEvent EnterDownEvent = EventManager.RegisterRoutedEvent( "EnterDown", RoutingStrategy.Bubble, typeof(EventHandler), typeof(UserControl1)); //CLR事件包装 public event RoutedEventHandler EnterDown { add { this.AddHandler(EnterDownEvent, value); } remove { this.RemoveHandler(EnterDownEvent, value); } } #endregion #region 是否打开下拉框 public bool IsDropDownOpen { get { return (bool)GetValue(IsDropDownOpenProperty); } set { SetValue(IsDropDownOpenProperty, value); } } public static readonly DependencyProperty IsDropDownOpenProperty = DependencyProperty.Register("IsDropDownOpen", typeof(bool), typeof(UserControl1), new PropertyMetadata(false)); #endregion } 步骤二: 新建个Window窗体DialogWin xaml代码 cs代码 public partial class DialogWin : Window { public DialogWin() { InitializeComponent(); mySelect.EnterDown += (o1, e1) => { this.Close(); }; } }   步骤三,在主窗体弹出DialogWin xaml代码

/template/Home/Zkeys/PC/Static