2010-07-14 78 views
0

我发现需要折叠给定的WPF元素或控件时,它是视觉上空的,我很好奇其他人是否遇到过这种情况,如果是的话,是什么类型的解决方案的工作。如何在没有子元素时动态折叠WPF元素,例如Border?

我目前的情况是我有一个边界控制,要么有一个子元素或不取决于各种情况。当Border.Child为null或以其他方式取消设置时,我也想将Border.Visibility设置为Collapsed。我试过做一个触发器来做这似乎是最合乎逻辑的解决方案,但它似乎是不是一个依赖项属性,所以当我试图这样我得到一个运行时异常。

作为一种解决方法,现在我已绑定到DataContext中的一个不同的属性,它与一个ValueConverter相结合,为我提供了一个可用于实现所需结果的结果条件。我希望尽管有人可能会想出一些光滑的附加行为或一些其他技巧,可以简化折叠WPF中的空元素。

回答

0

您是否考虑重新编制Expander控件?这已经完成了你在某种意义上描述的内容,尤其是如果您将标题设置为消失,以便以编程方式控制折叠状态。

+0

而不是一个扩展器,您可以模板一个ContentControl并使用具有HasContent属性的触发器。 – Kris 2010-07-15 02:53:21

+0

与HasContent属性一样,我发现ItemsControl.HasItems属性也很有用。 – jpierson 2010-07-22 17:26:22