在WPF中,是否可以在UniformGrid面板中指定项目的单元格位置?

时间:2010-12-27 10:30:43

标签: wpf uniformgrid

我设计了以下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列表中会填充项目,如下所示:

alt text

我的问题是:是否可以在UniformGrid项目面板中指定列表项的单元格位置?例如,是否可以将突出显示的Team 2 vs Team 5项置于Team 1 vs Team 5下方,即将其移至右侧的下一个单元格,并保留当前所在的空白区域?它应该是这样的:

alt text

现在,我正在使用向SortedMatchesListBox.ItemsSource添加空白项目的技巧来实现它,但我真正喜欢的是能够在项目面板中指定项目的单元格位置。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

是的,我猜你是如何用UniformGrid做的。它只接收子元素并将其插入下一个可用位置'n X n矩阵'

如果您需要精确的单元格位置,请使用具有统一行和列宽度的网格,这样您就可以准确指定子元素所在的单元格。