我想更改listView中项目之间的间距(也许我应该使用另一个视图元素?)代码如下所示:
<ListView SelectionMode="None" HorizontalContentAlignment="Left" >
<ListView.Items>
<TextBlock Text="Item 1" />
<TextBlock Text="Item 2" />
<TextBlock Text="Item 3" />
<TextBlock Text="Item 4" />
</ListView.Items>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="left"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
我想尽可能的模仿普通的stackpanel(可以 Package 元素)。目前的项目之间的空间(水平空间)太大了。我之前的问题-〉Windows 8 WrapPanel
先谢了
6条答案
按热度按时间tjvv9vkg1#
您需要对默认模板进行更改。如果您只想进行简单的更改,如填充和边距,则可以执行以下操作:(已测试代码,应该可以工作)
要获得更多的控制权,请在设计器中选择一个listviewitem并右键单击,以复制整个默认模板。选择"编辑模板","编辑复制"。这将生成默认模板,您可以在其中进行更改。您可以对listviewcontainer执行相同的操作。您也可以使用Blend执行此操作。
I've added a description and images here (how you can edit a default template)
让我知道进展如何,如果你有更多的问题!祝你好运!
编辑:
MemeDeveloper在下面提到,他仍然有问题,并通过调整一些其他属性来解决它-他在这里发布了代码和答案,请务必看看。
fcwjkofz2#
据我所知(windows8. 1 xaml商店应用程序),在将这两个设置为零后
我仍然有令人沮丧的差距,我似乎无法摆脱。
此处使用负边距可能对您有用,但是......它很笨拙,很难处理,并且不会总是产生预期的结果
拔了我的头发后,我发现这个问题已经解决了。
内容边距=“0”填充=“0”
在列表视图项目演示者中,如下所示:
希望这能让别人避免在键盘上反复砸自己的头;)
pbpqsu0x3#
我认为这里要修改的正确ItemContainerStyle属性是MinHeight,而不是Margin或Padding。
x6492ojm4#
您需要编辑ListBox.ItemContainerTemplate属性。Blend或VS可视化设计器可帮助提取该属性以进行修改。
7bsow1i65#
用于消除Windows 8.1应用商店应用程序GridView项边距的解决方案。灵感来自上述ListView解决方案。
s3fp2yjn6#
对于WinUI3,这几行代码帮助我消除了行与行之间的空格:
我希望能帮助别人。