【发布时间】:2010-09-14 13:31:40
【问题描述】:
如何在 WPF 中相对定位元素? 标准模型是对所有内容都使用布局管理器,但是如果您只想根据其他元素的位置来定位元素(例如在 Canvas 上)怎么办?
例如,您可能希望将一个元素(例如按钮)附加到另一个元素(可能是面板)的一侧,而与该面板的位置或布局无关。 任何使用过工程工具(SolidWorks、AutoCad 等)的人都熟悉这种相对定位。
将所有内容强制放入布局管理器(不同的 WPF 面板)对于某些场景没有多大意义,在这些场景中,您不关心元素由某个父容器维护,并且您不希望其他子容器受到改变彼此的布局/外观。 WPF 是否以任何方式支持这种相对定位模型?
【问题讨论】:
-
我不确定我是否完全理解这个问题。您能否举一个您认为 WPF 模型无法实现的屏幕布局示例?
-
我同意,这个问题令人困惑......似乎一个简单的 StackPanel 就可以解决问题。
-
我认为这不会令人困惑,而且 StackPanel 只能处理最简单的情况。他想要的是相当于Android中的RelativeLayout。
-
就是这样(Android的RelativeLayout)。似乎 WPF 不支持这种布局方案。我发现的最佳解决方法是将 Canvas 包裹在您想要相对定位的任何 UI 元素周围,然后使用 Canvas.Top/Bottom/Left/Right 将元素相对于画布的边界放置(因此包裹元素)。
标签: wpf css-position