UWP開發(fā)中,ListView控件使用數(shù)據(jù)模板DataTemplate時,可能會遇到一個問題:內(nèi)容條目ListViewItem寬度無法拉伸為ListView的寬度。這個問題的解決辦法并不難,下面讓我們一步一步來看。
設(shè)置ListView的內(nèi)容寬度是拉伸的要設(shè)置ListView的內(nèi)容寬度是拉伸的,你需要在屬性添加中設(shè)置HorizontalContentAlignment為Stretch。此外,數(shù)據(jù)模板中的各個層級的
設(shè)置ListView的內(nèi)容寬度是拉伸的
要設(shè)置ListView的內(nèi)容寬度是拉伸的,你需要在屬性添加中設(shè)置HorizontalContentAlignment為Stretch。此外,數(shù)據(jù)模板中的各個層級的HorizontalAlignment也必須都要設(shè)置為Stretch。只設(shè)置這些還不夠。
觀察可視化樹找出問題根源
首先嘗試運行程序,你會發(fā)現(xiàn)其條目內(nèi)容仍是auto寬度,并非ListView的寬度。這時候你需要調(diào)試觀察其可視化樹以找出問題根源。通過觀察可視化樹,我們發(fā)現(xiàn)ListViewItem的寬度是Stretch,數(shù)據(jù)模板中最外層的寬度也是Stretch,可以確定問題出在兩層之間。
查看ListViewItemPresenter的屬性
接著,你需要查看ListViewItemPresenter的屬性。你會發(fā)現(xiàn)其HorizontalContentAlignment是Left。將其設(shè)置為Stretch就出現(xiàn)了想要的寬度效果。
使用Setter設(shè)置ListViewItem的HorizontalContentAlignment屬性
如果你希望在Xaml代碼中解決這個問題,則需要使用Setter設(shè)置ListViewItem的HorizontalContentAlignment屬性,代碼如圖所示。
重新調(diào)試運行
最后,再次調(diào)試運行,你就會發(fā)現(xiàn),ListView控件的條目寬度已經(jīng)和ListView寬度一致了。這樣就成功解決了UWP ListView的Item內(nèi)容寬度無法拉伸的問題。
標(biāo)題建議:如何解決UWP ListView的Item內(nèi)容寬度無法拉伸的問題