3

私は、独自のカスタム ファイル マネージャー/エクスプローラーを必要とするプログラムを開発しています。これは非常に典型的です: ユーザー コントロール (FileItem という名前) があり、これには Image (サムネイル) と Label (ファイル名) が含まれています。

私が経験している問題はレイアウトにあります。アイコン ビューを使用している場合の Windows エクスプローラーとまったく同じように、グリッド レイアウトで必要です (したがって、それを釘付けにする Uniform Grid を使用しています)。

ウィンドウズ・エクスプローラ

ListBoxが完全に行うファイル、または複数のファイルなどを選択できるようにする必要もあります。問題は、両方を使用できないことです。

そこで、ListBox 内に Uniform Grid を挿入しようとしました。レイアウトは素晴らしかったのですが、ファイルを選択できませんでした (ListBox がないかのように)。

Google で簡単に検索すると、ListView を使用することが提案されましたが、列と行が固定されているため、うまく機能しません (また、私が取り組んでいるプログラムではサイズが変更されます)。

では、ListBox と Uniform Grid の両方の機能を正確に実現するにはどうすればよいでしょうか?

編集(重要): この外観も必要で、答えが必要な場合は、実際にはUniform GridではなくWrapPanelをお勧めします。コンテンツに応じて行数を自動的に動的に変更できるようになります。

4

1 に答える 1

4

ListBoxItemsPanelを UniformGrid に設定するには、次のようにします。

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid IsItemsHost="True" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBoxItem Content="Grid Item 1" />
    <ListBoxItem Content="Grid Item 2" />
    <ListBoxItem Content="Grid Item 3" />
    <ListBoxItem Content="Grid Item 4" />
    <ListBoxItem Content="Grid Item 5" />
    <ListBoxItem Content="Grid Item 6" />
    <ListBoxItem Content="Grid Item 7" />
    <ListBoxItem Content="Grid Item 8" />
    <ListBoxItem Content="Grid Item 9" />
    <ListBoxItem Content="Grid Item 10" />
</ListBox>

これで選択の問題が発生することはなく、アイテムは希望どおりに表示されます。

于 2012-10-14T10:41:42.270 に答える