ListView ItemTemplate 未填充

Bru*_*arà 2 xaml user-controls listview uwp

我为 ListViewItem 创建了一个模板。

它并没有填满所有的空间。

我的模板如下:

<UserControl
x:Class="AgendaUWP.Styles.Template.ItemTemplateContatti"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AgendaUWP.Styles.Template"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="100"
d:DesignWidth="400">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3" />
        <ColumnDefinition  />
        <ColumnDefinition  />
    </Grid.ColumnDefinitions>
    <Border Background="CornflowerBlue" Grid.Column="0"  Width="3" Margin="0 0 0 0"  VerticalAlignment="Stretch"/>
            <StackPanel  Grid.Column="1"  Orientation="Vertical" Margin="10 0 0 0" HorizontalAlignment="Stretch" VerticalAlignment="Center" >
                <TextBlock Text="{Binding Tipo}" FontWeight="Thin" FontSize="10" TextAlignment="Center"  />
                <TextBlock Text="{Binding Descrizione}" FontWeight="SemiBold" FontSize="16" TextAlignment="Center"/>
            </StackPanel>
            <StackPanel   Grid.Column="2" Orientation="Vertical"  VerticalAlignment="Center"   HorizontalAlignment="Stretch" >
                <StackPanel Orientation="Horizontal" Margin="0 10 0 10" >
                    <SymbolIcon Symbol="Phone"  Margin="10 0 10 0"></SymbolIcon>
                    <TextBlock Text="{Binding Telefono}"  />
                </StackPanel>
                <StackPanel Orientation="Horizontal" Margin="0 10 0 10">
                    <SymbolIcon Symbol="Mail" Margin="10 0 10 0"></SymbolIcon>
                    <TextBlock Text="{Binding Email}"  />
                </StackPanel>
            </StackPanel>

</Grid>
Run Code Online (Sandbox Code Playgroud)

这是如何使用它:

                        <ListView x:Name="listaContatti"
                             IsItemClickEnabled="True" MaxHeight="200"
                             SelectedItem="{Binding ClientiContatti,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                             ItemsSource="{Binding ListaClientiContatti,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
                            <ListView.ItemTemplate>
                                    <DataTemplate>
                                    <template:ItemTemplateContatti />
                                </DataTemplate>
                            </ListViewItemTemplate>
                        </ListView>
Run Code Online (Sandbox Code Playgroud)

这是我的结果: 图片我的结果

我想看到线条的开头、蓝色边框和两个 StackPanel,就像您在 Visual Studio 设计器中看到的那样: 想象一下我的设计师

Dec*_*oon 5

尝试将HorizontalContentAlignment每个设置ListViewItemStretch。还设置Padding0删除蓝色条之前的间隙。

<ListView x:Name="listaContatti"
    IsItemClickEnabled="True" MaxHeight="200"
    SelectedItem="{Binding ClientiContatti,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
    ItemsSource="{Binding ListaClientiContatti,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <template:ItemTemplateContatti />
        </DataTemplate>
    </ListView.ItemTemplate>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            <Setter Property="Padding" Value="0" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
Run Code Online (Sandbox Code Playgroud)