【问题标题】:WPF - UserControl sizing on Custom CanvasWPF - 自定义画布上的用户控件大小
【发布时间】:2010-10-09 23:41:36
【问题描述】:

我有一个自定义画布,我可以在上面放置控件、移动控件并调整其大小。我需要能够至少从预先确定的大小开始,然后允许重新调整大小。

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

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

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

那么我需要对 UserControls 做些什么来调整视觉效果吗?我应该使用明确的高度和宽度来开始吗?

感谢您的帮助。

【问题讨论】:

    标签: wpf layout user-controls canvas


    【解决方案1】:

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

    该系统非常合乎逻辑。一分钱很快就会下降。很抱歉间接回答,但我认为您的问题中没有足够的信息来真正解释发生了什么。

    您还可以查看HorizontalAlignmentVerticalAlignment 属性。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-08-24
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多