Почему listview.headertemplate и listview.itemtemplate (UWP XAML) отображаются по-разному, даже если я использую один и тот же XAML?
У меня есть ListView в моей форме, и я настраиваю ListView.HeaderTemplate и это выглядит так, как я ожидаю, что это будет выглядеть.
Однако, если я скопирую точное определение сетки в свой ListView.ItemTemplate это не макет же самое.
<ListView.HeaderTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Margin="7 0 0 0" Grid.Row="0" Grid.Column="0" Foreground="#ff0000" Text="Date" /> <TextBlock Margin="0 0 15 0" Grid.Row="0" Grid.Column="1" Foreground="#ff0000" Text="Entry Count" /> </Grid> </DataTemplate> </ListView.HeaderTemplate>
То на следующем рисунке показано, как это выглядит в Visual Studio 2017:
https://i.stack.imgur.com/xgU9P.png[^]
Вы можете видеть, что даже если HeaderTemplate и ItemTemplate определены одинаково, они располагаются по-разному.
Изменены два цвета значений столбцов (голубой и зеленый)
Я изменил цвет двух значений столбцов элементов, чтобы вы могли различать, где каждый из них отображается. У меня есть два значения <x:String>, определенные таким образом, что данные будут отображаться в макете предварительного просмотра Visual Studio, но когда он запускается, эти два макета все еще выглядят по-разному, даже если они определены одинаково.
Никакой Сетки.Строк, Определенными На Свойства Itemtemplate Элементов TextBlock
Единственное отличие, которое вы заметите в XAML, заключается в том, что текстовые блоки ItemTemplate имеют только свою сетку.Набор столбцов (без сетки.Набор рядов). Это был тест, и он выглядит одинаково в любом случае.
Буквально скопируйте / вставьте HeaderTemplate в ItemTemplate
Я буквально скопировал HeaderTemplate в ItemTemplate и внес только упомянутые изменения.
Почему они не делают то же самое?
Что я уже пробовал:
Я изменил определения столбцов ItemTemplate, чтобы они выглядели следующим образом:
<Grid.ColumnDefinitions> <ColumnDefinition Width="200" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions>
Это сделало его гораздо ближе к HeaderTemplate (как вы можете видеть на следующем изображении).
Но я все еще не уверен, почему они отображаются по-разному.
https://i.stack.imgur.com/GSMaE.png[^]