【发布时间】:2013-01-14 23:21:57
【问题描述】:
我正在构建一个 C# WPF 应用程序,在我的一个 XAML 视图中,我需要使用一条线连接位于不同容器中的两个控件。
这是我的简化布局伪代码:
<DockPanel>
<Grid DockPanel.Dock="Top">
<Button Name="Button1" />
</Grid>
<UniformGrid Columns="3" DockPanel.Dock="Bottom">
<StackPanel>
<Button Name="ButtonA" />
</StackPanel>
<StackPanel>
<Button Name="ButtonB" />
</StackPanel>
<StackPanel>
<Button Name="ButtonC" />
</StackPanel>
</UniformGrid>
</DockPanel>
我的要求是通过 Line 将 Button1 连接到 ButtonA、B 或 C,但我不知道如何。根据我的研究,人们通常使用 Canvas 并连接托管在该 Canvas 中的控件,并使用附加属性 Canvas.SetTop 和 Canvas.SetLeft 将控件定位在容器内。我尝试用 Canvas 包裹我的 DockPanel,但没有成功。
我的问题是:是否可以绘制连接不同类型布局的控件的线? (在我的情况下是 DockPanel-Grid-UniformGrid)或实现此目的的替代或更标准的方法。我也尝试让我的控制位置相对于 DockPanel,但也没有工作......
提前致谢
【问题讨论】:
-
你在正确的轨道上。在
中放置带有 -
问题是,如果我在我的 UniformGrid 中放置一个 Canvas 并在那里画线,它不会到达我在上部网格中的 Button1 控件,因为它超出了边界...
-
这篇文章给出了有趣的想法,我明天试试:msdn.microsoft.com/en-us/magazine/ff646962.aspx