Krz*_*zor 16 xaml listview gridview windows-8 windows-store-apps
我想更改listView中的项之间的间距(也许我应该使用另一个View-element?)代码如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
我想尽可能地模仿普通的stackpanel(wchich可以包装元素).目前项目之间的空间(水平空间)太大了.我之前的问题 - > Windows 8 WrapPanel
提前致谢
Iri*_*son 29
您需要更改默认模板.如果你只想进行简单的更改,例如填充和边距,那么你可以这样做:(测试代码,应该工作)
<ListView>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="left"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
</Style>
</ListView.ItemContainerStyle>
<ListViewItem>
<TextBlock Foreground="Wheat">hej</TextBlock>
</ListViewItem>
<ListViewItem>
<TextBlock Foreground="Wheat">hej</TextBlock>
</ListViewItem>
</ListView>
Run Code Online (Sandbox Code Playgroud)
要获得更多控制权,请通过在设计器中选择listviewitem并右键单击来制作整个默认模板的副本.选择编辑模板,编辑副本.这将生成默认模板,您可以在那里进行更改.您可以对listviewcontainer执行相同的操作.您也可以使用Blend来完成此操作.
让我知道它是怎么回事,如果你有更多的问题!祝好运!
编辑:
MemeDeveloper下面提到他仍然遇到问题并通过调整其他一些属性来解决它 - 他发布了一个代码并在这里回答,请务必看看.
Mem*_*per 20
据我所知(windows8.1 xaml商店应用程序),将这两个设置为零后
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
Run Code Online (Sandbox Code Playgroud)
我仍然有令人沮丧的差距,我似乎无法摆脱.
在这里使用负边距可能会为你做但是......它的hacky,难以使用,并且不会总是导致预期的结果
拉出我的头发之后,我发现问题已经解决了这些家伙,即
ContentMargin ="0"填充="0"
在ListViewItemPresenter中如下:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0" />
<Setter Property="Margin" Value="0" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="VerticalContentAlignment" Value="Top" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter ContentMargin="0" Padding="0" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
希望能避免别人在键盘上反复砸他们的头;)