我有從視圖模型綁定的項目數量可變,需要水平顯示並且可以選擇。 每個項目都由一個文本表示,這些文本的長度各不相同。當我使用帶有水平方向的StackPanel作爲其ItemTemplate的列表視圖時,這些項目只與內部文本一樣寬。 有沒有辦法使它們的尺寸都相同,這意味着最大尺寸的尺寸?理想情況下,沒有一些複雜的代碼隱藏,使用項目模板等? 注:我無法設置某些任意的最小寬度,因爲我不知道什麼長度的文本可以最終有(不同的語言等)WPF:與均勻寬度的項目水平對齊的集合
回答
可以使用ListBox
其中有UniformGrid
作爲ItemsPanel選擇支持。 UniformGrid將分配相等的空間,每個元素
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
例如
雖然這有效,但我無法在項目之間添加邊框以及更改所選項目的默認背景顏色。 ? – Shaggydog
@Shaggydog,查看[this Q + A](https://stackoverflow.com/questions/7059526/set-background-color-for-se- t- unts-in-a-listbox)查看顏色設置示例。separator:我將開始通過添加邊框到Label('Label BorderThickness =「1,0」BorderBrush =「Red」')或Border標籤周圍的邊框元素。如果看起來不太好,我會嘗試使用自定義ListBoxItem模板。目前沒有IDE,所以如果你需要更多關於你的問題的詳細幫助,我建議提出一個新的問題。 – ASh
- 1. 均勻空間水平導航項目
- 2. 全寬度的水平導航欄有均勻分佈的項目
- 3. 的UILabel動態寬度 - 水平對齊
- 4. 水平滾動條出現 - 均勻Div的寬度= 100%
- 5. WPF:水平對齊
- 6. 表列寬度和水平對齊
- 7. 用CSS均勻地對齊兩條水平鏈接線
- 8. 水平對齊跨越標籤數量不均勻
- 9. 列表項目的水平對齊
- 10. 水平對齊向右+ wpf
- 11. 均勻地對齊對象
- 12. 導航欄整個寬度間隔的項目均勻
- 13. 水平對齊列表框項目
- 14. 如何水平對齊項目
- 15. 空間Recyclerview項目平均(水平)
- 16. 水平scrollView與對齊
- 17. 與CSS水平對齊
- 18. 水平對齊CSS與CSS3
- 19. 均勻空間水平導航ul
- 20. 在ggplot2中水平均勻分佈點
- 21. 在水平線上均勻分配div
- 22. 空間均勻按下(水平)
- 23. 水平對齊
- 24. 水平對齊
- 25. 水平對齊
- 26. 如何在一個水平的Silverlight列表框中均勻分配項目
- 27. WPF DataGrid行水平對齊問題
- 28. 最大寬度和最小寬度均勻分佈的DIV
- 29. 平均速度wpf
- 30. 與長度不均勻
你能爲每個項目做一些像 'WIDTH = 「1 *」'? –
不確定你的意思。 TexBlock的寬度不支持「1 *」這樣的東西,如果你的意思是有一個帶有列定義的網格,我只是嘗試過了,沒有做任何事情,但即使我以某種方式得到了這個工作,我認爲將我的項目拉伸到可用的最大寬度,這完全不是我想要的。 – Shaggydog