如何将控件附加到WPF中的另一个控件?

时间:2011-03-04 23:38:43

标签: c# .net wpf xaml layout

我的窗口右下方有一个ListBox,我想在Label的最左上方放置一个ListBox

目前我正在使用DockPanelListBox停靠在窗口的右下角,但我不确定如何将“标签”与ListBox“组合在一起”所以他们在一起。

我是否必须使用硬编码边距完成此操作,以便它们看起来连在一起?

我还应该用什么控制来做这件事? StackPanelDockPanel等?

2 个答案:

答案 0 :(得分:3)

嵌套另一个DockPanel。将您的Label作为第一个孩子,并将其停靠在顶部。把你的ListBox作为第二个孩子;它将填补剩余的空间。

<DockPanel Name="YourExistingDockPanel">
    ...
    <DockPanel>
        <Label DockPanel.Dock="Top" Content="YourLabel"/>
        <ListBox .../>
    </DockPanel>
    ...
</DockPanel>

答案 1 :(得分:2)

将两个控件放在一个单元格Grid中,并在每个控件上设置Margin属性,使它们绝对位于单元格内。这将允许您将两个控件“粘合”在一起(您可以控制它们的大小以及它们在单元格内的位置,因此粘合)在Grid内部,这将起到“石斑鱼”的作用。

然后,您可以使用任何您想要的方式(例如DockPanel)将网格定位在您喜欢的任何位置。内部的两个控件将移动但始终保持在一起。

如果您不需要像素完美的绝对定位,如果您使用StackPanel而不是Grid,相同的技术也会起作用。在这种情况下,您将受到使用StackPanel可实现的布局的限制。