我有一個ListView
我想水平顯示的東西。這工作正常,但現在我需要讓他們像在Windows資源管理器類型顯示。如何使WPF ListView項目水平和垂直重複?
例如:
A B C
D E F
G H I
或
A B
C D
E F
G H
I
是否有可能在ListView
?
我有一個ListView
我想水平顯示的東西。這工作正常,但現在我需要讓他們像在Windows資源管理器類型顯示。如何使WPF ListView項目水平和垂直重複?
例如:
A B C
D E F
G H I
或
A B
C D
E F
G H
I
是否有可能在ListView
?
如果你想讓你的物品都具有相同的尺寸,我會去UniformGrid。它是被忽視的控制之一,在這種情況下可能非常有用。
這是我做了一個快速和骯髒的工具欄:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="{Binding}"
ToolTip="{Binding Tooltip}">
<StackPanel Orientation="Vertical">
<Image Height="16"
Width="16"
RenderOptions.BitmapScalingMode="NearestNeighbor"
Source="{Binding Image}"
HorizontalAlignment="Center" />
</StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
聽起來就像你正在尋找WrapPanel。我認爲它不適用於ListView,但如果您希望通用項目容器使用WrapPanel作爲佈局,則可以使用ItemsControl執行此操作,並使用您想要的任何元素填充它。像下面這樣:
<ItemsControl>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
<TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
</ItemsControl.Items>
</ItemsControl>
像你說的它似乎並沒有與WrapPanel工作,但我會做什麼是有兩個列表上的頂部彼此,因爲我知道我將擁有的最大物品的確切數量。 – 2009-10-15 19:10:54
你可以得到這個與ListView一起工作。我已經完成了,但目前沒有代碼。做一些谷歌搜索,你會發現它。 – 2009-10-15 19:20:33
它是否「有」是一個ListView? WPF非常靈活,您可以從許多不同的容器中獲得許多相同的列表顯示功能。容器通常不是您要查找的功能,而是模板(ItemsTemplate,ItemsPanelTemplate)。 – Rich 2009-10-15 19:22:17
很酷。這工作。但是,我已經更改爲兩個listview,因爲它相當緊迫。不過,我會記得統一的網格,因爲我的測試相當具有決定性。 – 2009-10-15 19:44:42