2010-12-27 18 views
1

私は、次のWPFウィンドウを設計した:ランは、SortedMatchesListBoxリストがアイテムを移入し、それはこのようになりますされている場合WPFでは、UniformGridパネル内で項目のセル位置を指定することは可能ですか?

<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> 

alt text

私の質問は:それはですUniformGridアイテムパネルのリストアイテムのセルの場所を指定することはできますか?たとえば、強調表示されたTeam 2 vs Team 5アイテムをTeam 1 vs Team 5の下に置くこと、つまり、右側の次のセルに移動し、現在存在する空白を保存することは可能ですか?それは次のようになります。今

alt text

、私はそれを実現するためにSortedMatchesListBox.ItemsSourceに空白の項目を追加するのトリックを使用して、しかし、私が本当に欲しいことを指定できるようにすることですしていますアイテムパネルのアイテムのセルの位置。助けてくれてありがとう。

答えて

1

ええ、私はあなたがUniformGridでそれをどうやってやったのかと思います。それはちょうど子要素を取り入れ、それを次の利用可能な位置に入れます。 'n X n行列'

正確なセルの位置を求めるには、均一な行と列の幅を持つグリッドを使用します。子要素が配置されます。

+0

OK、行と列の幅と高さの均一性を保つために、Gridパネルの行と列の定義に同じ値を設定する必要があります。この方法で、正確な位置を指定し、UniformGridレイアウトのルックアンドフィールを維持することができます。甘い – Boris

関連する問題