在Xaml/C#
WinRT
应用程序中,只要选择了ListViewItem
,左侧的第一个字母就会被删除。我该如何防止这种情况?
<ListView>
<ListViewItem Content="Hello World"/>
</ListView>
未选中且已满:
已选中和已截断:
答案 0 :(得分:2)
您可以在ListViewItem本身的项目中应用保证金,如下所示,这将停止切断。或者,您可以使用ContentTemplate作为第二个示例。
示例1:
<ListView>
<ListViewItem>
<TextBlock Text="Hello World" Margin="5,0,0,0"/>
</ListViewItem>
</ListView>
示例2:
<ListView>
<ListViewItem Content="Hello World!">
<ListViewItem.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Margin="5,0,0,0"/>
</DataTemplate>
</ListViewItem.ContentTemplate>
</ListViewItem>
</ListView>
答案 1 :(得分:0)
作为Brandon Scott的answer的后续内容,如果您不想将此内联应用于内联,则可以将此行为设置为样式,然后将该样式应用于单个列表项,如此
<Application.Resources>
<ResourceDictionary>
<Style x:Key="ListViewItemMagin" TargetType="ListViewItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" Margin="5,0,0,0"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
然后,将样式应用于列表视图项
<ListView>
<ListViewItem Content="Hello World" Style="{StaticResource ListViewItemMagin}"/>
</ListView>
如果要在默认情况下启用此功能,则可以省略样式上的x:Key
属性,它将自动应用于与TargetType
匹配的任何元素;像这样:
<Style TargetType="ListViewItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" Margin="5,0,0,0"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>