1

我设计了以下 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来实现它,但我真正想要的是能够在项目面板中指定项目的单元格位置。谢谢您的帮助。

4

1 回答 1

1

是的,我想这就是使用 UniformGrid 的方法。它只接收子元素并将其插入下一个可用位置“n X n 矩阵”

如果您想要精确的单元格位置,请使用具有统一行宽和列宽的 Grid,它允许您准确指定放置子元素的单元格。

于 2010-12-27T10:36:23.997 回答