0
A
回答
0
對於該列或該列中的單元格,應該將單元格的內容設置爲使用VerticalAlignment=Center
。
This answer可能對您有所幫助。
0
你想可以使用的方法可以實現如下的輸出類型:
<Window ...>
<Window.Resources>
<Style x:Key="HeaderContainerStyleKey" TargetType="GridViewColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<GridViewColumnCollection x:Key="ColumnKey">
<GridViewColumn Width="75" HeaderContainerStyle="{StaticResource HeaderContainerStyleKey}">
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<Grid Height="20">
<Line VerticalAlignment="Bottom" Stroke="#000" X2="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=GridViewColumnHeader}}"/>
</Grid>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding Name, Mode=OneWay}"/>
<Run Text=":"/>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridViewColumnCollection>
<GridViewColumnCollection x:Key="ColumnsKey">
<GridViewColumn Width="75" HeaderContainerStyle="{StaticResource HeaderContainerStyleKey}">
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Name" VerticalAlignment="Bottom" Height="16"/>
<Line Grid.Column="1" VerticalAlignment="Bottom" Stroke="#000" X2="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=GridViewColumnHeader}}"/>
</Grid>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding CountryName}"/>
<Run Text=","/>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="100" Header="Inhabitants" DisplayMemberBinding="{Binding CountryPopulation}" HeaderContainerStyle="{StaticResource HeaderContainerStyleKey}">
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Inhabitants" VerticalAlignment="Bottom"/>
<Line Grid.Column="1" VerticalAlignment="Bottom" Stroke="#000" X2="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=GridViewColumnHeader}}"/>
</Grid>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
</GridViewColumn>
</GridViewColumnCollection>
</Window.Resources>
<Grid>
<Grid.Resources>
<CollectionViewSource x:Key="CvsKey" Source="{Binding Data}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="ContinentName"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Grid.Resources>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<GridViewHeaderRowPresenter Columns="{StaticResource ColumnKey}" Grid.Column="0"/>
<GridViewHeaderRowPresenter Columns="{StaticResource ColumnsKey}" Grid.Column="1"/>
</Grid>
<ListView Visibility="Visible" ItemsSource="{Binding Source={StaticResource CvsKey}}" BorderThickness="0">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="GroupItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupItem">
<StackPanel Orientation="Horizontal">
<GridViewRowPresenter Margin="0 0 0 10" Columns="{StaticResource ColumnKey}" Content="{Binding DataContext, RelativeSource={RelativeSource Self}}"/>
<ItemsControl ItemsSource="{Binding DataContext.Items, RelativeSource={RelativeSource AncestorType=GroupItem}}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<GridViewRowPresenter Margin="0 0 0 10" Columns="{StaticResource ColumnsKey}" Content="{Binding DataContext, RelativeSource={RelativeSource Mode=Self}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
</ListView>
</StackPanel>
</Grid>
</Window>
視圖模型
public class ViewModel:INotifyPropertyChanged
{
public List<ContinentData> Data { get; set; }
public ViewModel()
{
Data = new List<ContinentData>();
Data.Add(new ContinentData() { ContinentName="Europe", CountryName="Italy", CountryPopulation="12345" });
Data.Add(new ContinentData() { ContinentName = "Asia", CountryName = "India", CountryPopulation="987253" });
Data.Add(new ContinentData() { ContinentName = "Asia", CountryName = "Pak", CountryPopulation = "987253" });
Data.Add(new ContinentData() { ContinentName = "Europe", CountryName = "Germany", CountryPopulation = "54678" });
Data.Add(new ContinentData() { ContinentName = "Asia", CountryName = "Nepal", CountryPopulation = "987253" });
Data.Add(new ContinentData() { ContinentName = "Asia", CountryName = "China", CountryPopulation = "987253" });
Data.Add(new ContinentData() { ContinentName = "Europe", CountryName = "England", CountryPopulation="54678" });
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string prop)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
}
public class ContinentData
{
public string ContinentName { get; set; }
public string CountryName { get; set; }
public string CountryPopulation { get; set; }
}
public MainWindow()
{
InitializeComponent();
this.DataContext = new ViewModel();
}
相關問題
- 1. 垂直居中HTML標頭
- 2. 垂直居中
- 3. 如何居中垂直頭內?
- 4. 圖像不垂直居中
- 5. 的LinearLayout不居中垂直
- 6. 垂直居中不工作
- 7. CSS - 垂直居中
- 8. 垂直居中div
- 9. Textview垂直居中
- 10. 在ListView上垂直居中列表項
- 11. 垂直居中不工作在Firefox中
- 12. 垂直Epander像垂直頭
- 13. 垂直快捷菜單欄文本不會垂直居中
- 14. 垂直居中兩個div
- 15. 居中Div元素垂直
- 16. 垂直居中Side Navbar
- 17. 垂直居中,並與jQuery
- 18. css垂直居中文本
- 19. 垂直文本,居中div
- 20. 垂直居中div嗎?
- 21. 桌子居中(垂直)
- 22. RelativeLayout垂直居中於右
- 23. 垂直居中浮動div
- 24. 垂直居中一個div
- 25. 垂直居中div div
- 26. 垂直居中線高
- 27. 垂直居中一格div
- 28. 垂直居中在HTML
- 29. 垂直居中的div
- 30. 垂直居中的CSS
ü的意思是說歐洲在中央出現,但你想要它在頂部如圖所示。 – AnjumSKhan
你可以在這裏複製你的XAML代碼嗎? – OrMiz