如何在 Windows 10 中制作自适应 UI?

How to make adaptive UI in Windows 10?

我正在尝试将我的旧应用程序迁移到 Windows 10,但我遇到了 Grid 问题。我在 XAML 页面中创建了一个网格,其中 WebView 和 ListView 位于 2 个不同的行中。现在的问题是它在本地机器(笔记本电脑)中看起来很好,但是当我在 Windows Phone 中检查时,它看起来不太好(图像,文本看起来非常大)。请在下面找到我的 XAML 代码和 ListView 的数据模板。我知道 RelativePanel 会节省我的时间,但任何人都可以更新我的代码并建议我,以便我可以在每个页面上使用相同的代码,因为我的应用程序经常在 Grid 中使用 ListView。

XAML 代码

<Grid x:Name="LayoutRoot" Background="{StaticResource AppBackGroundColor}">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <WebView Grid.Row="0"
             x:Name="webView"
             DefaultBackgroundColor="#388941"
             IsHitTestVisible="False"/>
    <ListView x:Name="loginandRegisterOptionslist"
             Margin="0,10,0,0"
             Grid.Row="1"
             ScrollViewer.VerticalScrollBarVisibility="Auto"
             ItemContainerStyle="{StaticResource GenericListViewContainerStyle}"
             ItemTemplate="{StaticResource WelcomePageListItemTemplate}"
             VerticalAlignment="Bottom"
             SelectionMode="Single"
             />
</Grid>

上述 ListView 的数据模板

<DataTemplate x:Key="WelcomePageListItemTemplate">

        <Grid Margin="0,2,0,2"
          Background="White">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <Image Width="80"
               Height="60"
               Name="img1"
               Stretch="Uniform"
               Margin="4,0,4,0"
               Grid.Column="0"
               Source="{Binding IMAGE_URL}"></Image>

            <StackPanel Grid.Column="1"
                    Margin="0,8,0,8">
                <TextBlock Text="{Binding TITLE}"
                       Margin="2"
                       Style="{StaticResource HeaderContentStyle}" />
                <TextBlock Text="{Binding VALUE}"
                       Margin="2"
                       Style="{StaticResource DescriptionContentStyle}" />
            </StackPanel>
        </Grid>

</DataTemplate>

您可能想尝试一些解决方案:

  • 将您的数据放置在用户控件中,使用Adaptive Trigger根据不同的屏幕尺寸自定义图像和文本的大小。
  • 使用差异XAML查看不同的设备系列
  • 启动应用程序时,检测设备系列,根据该信息设置正确的尺寸绑定值