【问题标题】:ListView ItemTemplate not fillListView ItemTemplate 未填写
【发布时间】:2016-10-22 11:52:14
【问题描述】:

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

这是如何使用它:

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

这是我的结果:

我希望看到行的开头、蓝色边框和两个 StackPanel,就像您在 Visual Studio 设计器中看到的那样:

【问题讨论】:

    标签: xaml listview user-controls uwp


    【解决方案1】:

    尝试将每个ListViewItemHorizontalContentAlignment 设置为Stretch。还将Padding 设置为0 以消除蓝条之前的间隙。

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

    【讨论】:

    • 谢谢,好像也可以,但是,边框标签,在开始时看不到,但在后面几个像素,为什么?
    • 我已经编辑了我的答案,提供了更多关于此的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多