Popup的IsOpen和Visibility属性之间的区别?

7 wpf xaml popup

我玩过WPF Popup Control,据我所见,Visibility属性是多余的.

如果你有一个IsOpen = True的Popup,即使它的Visibility = Collapsed也会显示.

如果你有一个IsOpen = False的Popup,那么它的Visibility将被折叠,当IsOpen变为true时它将保持"Collapsed",并且它将出现.(即,即使Snoop说它已经崩溃,你的屏幕上也会出现一些东西.)

为什么Popup控件具有这两个属性?我在这里错过了什么吗?

Ben*_*orf 2

我相信你是对的......这几乎是多余的。我认为问题在于该Visibility属性是继承自UIElement并且可以解释为“这应该有正常的视觉表示”。

由于 aPopup在它的“默认状态”中没有任何视觉表示...即:当它关闭时,该属性没有多大意义。 IsOpen但是,更多的是基于行为的属性...即:“用户应该被允许与我通常隐藏的内容进行交互吗?”。或者也许我只是在这里证明微软的工作是正确的。

归根结底,任何具有 UI 表示的东西都会继承UIElement并因此获得该Visibility属性……即使它没有任何意义。