C# XAML布局问题
我是UWP的新手,一天中的大部分时间都在为一些简单的XAML而挣扎,但我无法让它按照我想要的方式进行布局。我试图实现的目标如下所示 在第1列中水平和垂直居中的一段文字。 第2列中有两条文本左对齐。 在第3列中水平和垂直居中的一段文字 这是我到目前为止拥有的XAML。我知道我需要使用列,但即使尝试这样做,我也无法获得正确的布局C# XAML布局问题,c#,xaml,uwp,C#,Xaml,Uwp,我是UWP的新手,一天中的大部分时间都在为一些简单的XAML而挣扎,但我无法让它按照我想要的方式进行布局。我试图实现的目标如下所示 在第1列中水平和垂直居中的一段文字。 第2列中有两条文本左对齐。 在第3列中水平和垂直居中的一段文字 这是我到目前为止拥有的XAML。我知道我需要使用列,但即使尝试这样做,我也无法获得正确的布局 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="h
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TramTimes"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="TramTimes.ServicesPage"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView x:Name="list" IsItemClickEnabled="False" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel>
<TextBlock Text="{Binding Destination}"/>
<TextBlock Text="{Binding Company}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Page>
如果有人能帮我把清单按我需要的方式列出来,我将不胜感激
编辑
这就是我现在使用的代码和我得到的结果——有人能帮我把表格填满整个列表吗
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TramTimes"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps"
x:Class="TramTimes.ServicesPage"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Maps:MapControl x:Name="map" Height="300" VerticalAlignment="Top"/>
<ListView x:Name="list" IsItemClickEnabled="False" Margin="0,300,0,0" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Scheduled}"/>
<StackPanel Grid.Column="2">
<TextBlock Text="{Binding Destination}"/>
<TextBlock Text="{Binding Company}"/>
</StackPanel>
<TextBlock Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Route}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Page>
您可以在模板中将列按比例宽度添加到网格中:
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Destination}" Grid.Column="0"/>
<TextBlock Text="{Binding Company}" Grid.Column="1"/>
<TextBlock Text="3rd column" Grid.Column="2"/>
</Grid>
</DataTemplate>
了解有关UWP中布局面板的更多信息,特别是
网格您可以在模板中按比例宽度向网格添加列:
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Destination}" Grid.Column="0"/>
<TextBlock Text="{Binding Company}" Grid.Column="1"/>
<TextBlock Text="3rd column" Grid.Column="2"/>
</Grid>
</DataTemplate>
了解有关UWP中布局面板的更多信息,特别是网格我解决了这个问题-忘记了列引用是基于0的,这没有帮助,还添加了下面的内容,使网格填充了整个列表的宽度
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
我解决了这个问题-忘记了列引用是基于0的,这没有帮助,还添加了下面的,这使得网格填充了列表的整个宽度
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
感谢您的代码-我尝试过类似的方法,但仍有问题。我已经编辑了上面的文章,包括了当前的代码和一个新的屏幕截图。好像网格没有填满列表的宽度,我也不能得到它。得到了修复,请参阅上面我的答案。谢谢。是的,对不起,我忘了。谢谢你的代码-我尝试过类似的东西,但我仍然有问题。我已经编辑了上面的文章,包括了当前的代码和一个新的屏幕截图。好像网格没有填满列表的宽度,我也不能得到它。得到了修复,请参阅上面我的答案。谢谢。是的,对不起,我忘了。