我设计了以下WPF窗口:
<Window x:Class="Boris.Gui.Wpf.DragDropWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="286" Height="350" ResizeMode="CanMinimize" Title="Drag and Drop">
<Window.Resources>
<!-- Sorted matches list panel -->
<ItemsPanelTemplate x:Key="SortedMatchesListPanel">
<UniformGrid Rows="3" Columns="4" />
</ItemsPanelTemplate>
</Window.Resources>
<Grid>
<ListBox
Name="SortedMatchesListBox"
Height="180"
Margin="12,85,12,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
ItemsPanel="{StaticResource ResourceKey=SortedMatchesListPanel}" />
</Grid>
</Window>
运行时,SortedMatchesListBox
列表中会填充项目,如下所示:
我的问题是:是否可以在UniformGrid
项目面板中指定列表项的单元格位置?例如,是否可以将突出显示的Team 2 vs Team 5
项置于Team 1 vs Team 5
下方,即将其移至右侧的下一个单元格,并保留当前所在的空白区域?它应该是这样的:
现在,我正在使用向SortedMatchesListBox.ItemsSource
添加空白项目的技巧来实现它,但我真正喜欢的是能够在项目面板中指定项目的单元格位置。谢谢你的帮助。
答案 0 :(得分:1)
是的,我猜你是如何用UniformGrid做的。它只接收子元素并将其插入下一个可用位置'n X n矩阵'
如果您需要精确的单元格位置,请使用具有统一行和列宽度的网格,这样您就可以准确指定子元素所在的单元格。