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

本文关键字:自适应 UI Windows | 更新日期: 2023-09-27 18:20:57

我正试图将我的旧应用程序迁移到Windows 10,但我遇到了网格问题。我在XAML页面中创建了一个网格,里面有两行WebView和ListView。现在的问题是,它在本地机器(笔记本电脑)中看起来很好,但当我在Windows Phone中检查时,它看起来不太好(图像、文本看起来很大)。请在下面找到我的XAML代码和ListView的DataTemplate。我知道RelativePanel会拯救我的一天,但有人能更新我的代码并建议我这样我就可以在每个页面上使用相同的代码吗?因为我的应用程序经常在网格中使用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>

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

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

  • 将您的数据临时放置在用户控件中,使用自适应触发器根据不同的屏幕大小自定义图像和文本的大小
  • 对不同的设备系列使用不同的XAML视图
  • 启动应用程序时,检测设备系列,根据该信息设置正确的大小绑定值