WPF - 自定义画布上的UserControl大小调整

时间:2009-02-26 02:39:45

标签: wpf layout user-controls canvas

我有一个自定义画布,我可以放下控件,移动和调整大小。我需要能够至少以预先确定的尺寸开始,然后允许重新调整大小。

我的问题是我有一个似乎没有调整大小的用户控件。我在用户控件上设置了高度和宽度(适用于拖放)。但是随着控件在画布上调整大小,视觉大小保持不变(大小调整句柄正在改变)。随着控件的大小调整,我可以看到Height属性发生变化(usercontrol.height)。但同样,控件的外观保持相同的大小。

我原以为用户控件上的内部容器应绑定到usercontrol.height,但这似乎没有帮助。 (或者我没有绑定权利。)

在同一个画布上,如果删除的控件是一个Image控件,我可以在drop上设置一个显式高度,所有内容都应该调整大小。所以它似乎是UserControl的事情。

因此,我需要对UserControls做一些特殊的事情来获取调整大小的视觉效果吗?我应该使用明确的高度和宽度来全部启动吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

正如您所发现的,WPF布局系统可能会令人困惑。对布局和测量系统的深刻理解是无可替代的。如果您计划进行大量WPF开发,那么值得花20分钟阅读this article on the layout system,然后在Kaxaml等迭代环境中进行一段时间的实验,直到您感到舒服为止。

系统非常符合逻辑。便士不会花很长时间才能下降。对于间接答案感到抱歉,但我不相信你的问题中有足够的信息可以解释发生了什么。

您还可以查看HorizontalAlignmentVerticalAlignment属性。

答案 1 :(得分:0)

不是WPF专家,但我相信您需要启用自动调整大小才能实现您正在寻找的方案。这是通过将控件的高度/宽度设置为Double.NaN来完成的,其实质上是“我没有特定的大小”。执行此操作后,控件应调整大小以根据控件的需要占用可用空间。