C#UWP - ListView中的第一个图像大小不正确

时间:2017-09-10 14:58:54

标签: xaml uwp uwp-xaml

我有一个简单的布局,基本上使用ItemsWrapGrid作为面板模板在ListView中显示项目列表。我遇到的问题是ListView中的第一个图像总是比其余图像大,即使设置了固定的宽度/高度。我完全被难倒了。

问题的图像:

Image

ListView XAML是:

<ListView ItemsSource="{Binding Currencies}" ItemTemplate="{StaticResource PortfolioCurrencyTemplate}">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsWrapGrid Orientation="Horizontal" Width="Auto" Height="Auto"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

数据模板:

<Page.Resources>
    <DataTemplate x:Key="PortfolioCurrencyTemplate" x:DataType="viewModels:PortfolioViewModel">
        <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
              BorderBrush="Black"
              BorderThickness="1"
              CornerRadius="2"
              Padding="10">

            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*" />
                <ColumnDefinition Width="2*" />
            </Grid.ColumnDefinitions>

            <Image Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Grid.ColumnSpan="1" MaxWidth="100" MaxHeight="100" Source="https://www.cryptocompare.com/media/19633/btc.png"/>

            <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Name}" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Symbol}" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Grid.Row="2" Text="{Binding LastPrice}" VerticalAlignment="Center"/>

        </Grid>            
    </DataTemplate>
</Page.Resources>

1 个答案:

答案 0 :(得分:1)

我建议您切换到ListView,而不是使用ItemsPanelTemplate并更改AdaptiveGridView来创建GridView效果并逐一处理问题,我建议您切换到xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

您可以从UWP Community Toolkit

安装Here的Nuget包

在页面中添加以下命名空间

ListView

现在您的<controls:AdaptiveGridView ItemsSource="{Binding Currencies}" ItemTemplate="{StaticResource PortfolioCurrencyTemplate}" DesiredWidth="250"/> 需要更换,如下所示。

git revert -n

Designer的输出

enter image description here

祝你好运。