我正在尝试在wpf中创建自定义面板。这就是我的疑虑,
请帮忙。
答案 0 :(得分:2)
您是否采取横向和/或垂直对齐方式取决于您自己。如果垂直StackPanel会考虑孩子的VerticalAlignment,那就不好了。
您应该在每个Child控件上调用Measure()方法。这将为您提供所需的尺寸。
答案 1 :(得分:1)
要实施您自己的面板,您需要实施MeasureOverride
和ArrangeOverride
。在布局期间,事情正在计算中,因此最终值尚不可用。要开始使用,请使用Size
中传递给您的MeasureOverride
参数,该参数是可用大小。您最终可能会使用多于或少于此金额。这取决于面板的布局行为。无论你做什么,你都必须给所有孩子打电话Measure
,你当然可以在计算中使用这些信息。
如果您想要实施某些特定的面板行为,但又不想处理大量特殊情况,那么您可以向您的孩子提供他们请求的所有空间,以便您不会堆叠并让您的孩子如有必要,可以使用子面板。
答案 2 :(得分:0)
不要忘记使用InternalChildren而不是Children。