ListView忽略项目模板的部分样式 问题说明
我已经使用一个常规的StackPanel(在DataTemplate中)堆叠了一些TextBlock元素 将其用作ContentControl的ContentTemplate时,布局将按预期显示。但是,如果我将DataTemplate用作ListView的ItemTemplate,一些属性将被忽略(TextLineBounds,但也包括Margin) 在下面的屏幕截图中,我放置了一个ContentControl和一个ListView,其中一个项目相邻以说明问题。为了使问题更加明显,我在文本块的左侧添加了彩色网格 我尝试过的事情 我尝试了几种使用Blend的方法。关闭没有帮助的ItemContainerStyle、ItemsPanel和ControlTemplate。 我可以手动使用ItemsControl和进行选择等,但我希望避免这种情况 复制问题 以下UserControl可用于在空白winrt项目中重现问题ListView忽略项目模板的部分样式 问题说明,listview,winrt-xaml,Listview,Winrt Xaml,我已经使用一个常规的StackPanel(在DataTemplate中)堆叠了一些TextBlock元素 将其用作ContentControl的ContentTemplate时,布局将按预期显示。但是,如果我将DataTemplate用作ListView的ItemTemplate,一些属性将被忽略(TextLineBounds,但也包括Margin) 在下面的屏幕截图中,我放置了一个ContentControl和一个ListView,其中一个项目相邻以说明问题。为了使问题更加明显,我在文本块的左
<UserControl
x:Class="ListViewRepro.DropInRepro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="60"
d:DesignWidth="300">
<UserControl.Resources>
<DataTemplate x:Key="ItemTemplate">
<Grid Width="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<StackPanel>
<Grid Height="18" Background="Yellow" />
<Grid Height="14" Background="Orange" />
<Grid Height="10" Background="GreenYellow" />
</StackPanel>
<StackPanel Grid.Column="1">
<TextBlock FontSize="20" Text="Header"
TextLineBounds="TrimToBaseline" />
<TextBlock FontSize="14.6" Text="Subheader"
TextLineBounds="TrimToBaseline" />
<TextBlock>Title</TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</UserControl.Resources>
<StackPanel Orientation="Horizontal">
<ContentControl ContentTemplate="{StaticResource ItemTemplate}" />
<ListView ItemTemplate="{StaticResource ItemTemplate}">
<x:String>dummy item</x:String>
</ListView>
</StackPanel>
</UserControl>
标题
虚拟项
默认的FontFamily
在ListViewItem
中是不同的(它是“Segoe UI”而不是“全局用户界面”),因此如果您希望它在这两种情况下都能工作,那么您需要将字体显式指定为“Segoe UI”或“全局用户界面”,并且它的工作方式相同
似乎
基线偏移量
是这两种字体之间的区别之一。为什么列表视图中有网格
?否则,我可以看到。这可能是一只虫子。顺便说一句,它在ItemsControl
中呈现良好。我注意到基线偏移量在这两种情况下有不同的值…@FilipSkakun网格是我能想到的最简单的项目,它会导致ListView显示一个项目。现在我需要使用testI将默认FontSize(重新)设置为10.6666。这与设置FontFamily一起解决了我的问题。