Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML布局问题_C#_Xaml_Uwp - Fatal编程技术网

C# 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

我是UWP的新手,一天中的大部分时间都在为一些简单的XAML而挣扎,但我无法让它按照我想要的方式进行布局。我试图实现的目标如下所示

在第1列中水平和垂直居中的一段文字。 第2列中有两条文本左对齐。 在第3列中水平和垂直居中的一段文字

这是我到目前为止拥有的XAML。我知道我需要使用列,但即使尝试这样做,我也无法获得正确的布局

<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>


感谢您的代码-我尝试过类似的方法,但仍有问题。我已经编辑了上面的文章,包括了当前的代码和一个新的屏幕截图。好像网格没有填满列表的宽度,我也不能得到它。得到了修复,请参阅上面我的答案。谢谢。是的,对不起,我忘了。谢谢你的代码-我尝试过类似的东西,但我仍然有问题。我已经编辑了上面的文章,包括了当前的代码和一个新的屏幕截图。好像网格没有填满列表的宽度,我也不能得到它。得到了修复,请参阅上面我的答案。谢谢。是的,对不起,我忘了。