我的窗口右下方有一个ListBox
,我想在Label
的最左上方放置一个ListBox
。
目前我正在使用DockPanel
将ListBox
停靠在窗口的右下角,但我不确定如何将“标签”与ListBox
“组合在一起”所以他们在一起。
我是否必须使用硬编码边距完成此操作,以便它们看起来连在一起?
我还应该用什么控制来做这件事? StackPanel
,DockPanel
等?
答案 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
可实现的布局的限制。