我玩过WPF Popup Control,据我所见,Visibility属性是多余的。
如果你有一个IsOpen = True的Popup,即使它的Visibility = Collapsed也会显示。
如果你有一个IsOpen = False的Popup,那么它的Visibility将被折叠,当IsOpen变为true时它将保持“Collapsed”,并且它会出现。 (即,即使Snoop说它已经崩溃,你的屏幕上也会出现一些东西。)
为什么Popup控件具有这两个属性?我在这里错过了什么吗?
答案 0 :(得分:1)
我相信你是对的......它几乎是多余的。我认为问题是Visibility
属性是从UIElement
继承的,可以解释为“这应该具有正常的可视化表示”。
由于Popup
没有任何可视化表示,因此它处于“默认状态......即:当它关闭时,该属性并不意味着什么。IsOpen
然而,更多的是一个基于行为的属性......即:“是否应该允许用户与我正常隐藏的内容进行交互?”或者也许我只是在证明微软的工作是正确的。
在一天结束时,任何具有UI表示的内容都会继承UIElement
,因此即使在没有任何意义的情况下也会获得Visibility
属性。
答案 1 :(得分:0)
MSDN为两者提供了完整的平均值和目的。
Popup.IsOpen - 获取或设置一个值,该值指示Popup是否可见。
Popup.Visibility - 获取或设置此元素的用户界面(UI)可见性。它继承自UIElement。