你怎么能相对位置WPF元素? 标准模型是使用布局管理器的一切,但如果你想定位元素(在Canvas,例如)什么只是基于其他元素的位置?
例如,你可能想一个元素(比如说按钮)将被附接的另一独立的是面板的位置或布局的侧(可能是一个面板)。 任何一个与工程工具(SolidWorks的,AUTOCAD等)的工作是熟悉这种相对定位的。
强制到一切布局管理器(不同的WPF面板)并没有太大的意义某些情况下,你不关心元素由一些父容器保持你不想通过在变化的影响其他孩子布局/外观彼此的。 WPF是否支持以任何方式这个相对定位模型?
而不是把(如你的例子)一个按钮直接在画布上的,你可以把画布,水平排列在一个StackPanel,并把两个按钮在那里。
像这样:
<Canvas>
<StackPanel Canvas.Left="100" Canvas.Top="100" Orientation="Horizontal">
<Button>Button 1</Button><Button>Button 2</Button>
</StackPanel>
</Canvas>
我认为这是相当灵活,当你在表单中使用超过1点布局,您可以创建几乎任何你想要的配置。
好问题。 据我所知,我们需要有不同的自定义面板来获得此功能。 由于WPF是基于视觉层次没有办法有这种扁平结构,在平台中的元素。
但这里有个窍门要做到这一点。 请将您的元素在相同的位置,并通过使用RenderTransform.TranslateTransform给相对位移。 这样,你的TranslateTransfrom的X和Y总是会relatuve到其它元件。