Можно ли в WPF указать расположение ячейки элемента на панели UniformGrid? - PullRequest
1 голос
/ 27 декабря 2010

Я разработал следующее окно 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 Ответ

1 голос
/ 27 декабря 2010

Да, я думаю, именно так вы могли бы сделать это с помощью UniformGrid.Он просто берет дочерние элементы и помещает их в следующую доступную позицию a 'n X n matrix'

Если вы хотите точные местоположения ячеек, используйте Grid с одинаковой шириной строк и столбцов, что позволяет точно указатьячейка, в которой размещен дочерний элемент.

...