当前位置: 首页 > 编程语言 > C#

WPF popup staysopen = false仍然会在外部单击时保持弹出窗口打开分享

时间:2023-04-11 00:26:24 C#

C#学习教程:WPFpopupstaysopen=falsestillkeepsthepopupwhenclickedoutside但是每次弹出窗口弹出时,我都必须在弹出窗口内单击某些内容(例如在列表框中选择一个元素),然后在弹出窗口外单击,它会自动关闭。如果我没有点击任何东西,即使我点击弹出窗口之外的其他元素,弹出窗口也会保持打开状态。我需要关闭弹出窗口而不单击其中的任何元素。我能做些什么?这是代码,这段代码有一些其他样式链接,但只是一些颜色样式。我的控件是一个列表框,当用户单击弹出窗口顶部的文本框时会弹出该列表框。如果用户什么都不做并点击该元素之外的任何地方,弹出窗口将关闭。谢谢。我可以使用以下代码在Silverlight中完成。但是好像在wpf里面,就不行了。popupAncestor=FindHighestAncestor(this.ListBoxPopup);如果(popupAncestor==null){返回;}popupAncestor.AddHandler(System.Windows.Controls.Primitives.Popup.MouseLeftButtonDownEvent,(MouseButtonEventHandler)ClosePopup,true);您应该在您的视图模型中创建一个依赖属性或控件“IsPopupOpen”,如下所示,以管理弹出窗口的状态。然后您可以将ToggleButton“IsChecked”和Popup“IsOpen”绑定到该DP。同样在ToggleButton上,设置“Focusable=false”和“IsThreeState=false”publicboolIsDropDownOpen{get{return(bool)GetValue(IsDropDownOpenProperty);}set{SetValue(IsDropDownOpenProperty,值);}}publicstaticreadonlyDependencyPropertyIsDropDownOpenProperty=DependencyProperty.Register("IsDropDownOpen",typeof(bool),typeof(Window),newUIPropertyMetadata(false));祝你好运!以上是C#学习教程:WPFpopupstaysopen=false外部点击时仍然保持弹窗打开所有共享内容。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: