Xaml 如何正确缩放视图

Xaml 如何正确缩放视图,xaml,windows-runtime,windows-10,windows-10-mobile,Xaml,Windows Runtime,Windows 10,Windows 10 Mobile,我想知道在Windows 10/Windows 8(.1)应用程序中正确缩放视图的最佳方法是什么 视箱 经理 其他的 我的图片的后缀已经是.scale-xxx.png 在1366x768中,我有: 在WXGA,我有: 以下是我的xaml代码: <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid.RowDefinitions> <

我想知道在Windows 10/Windows 8(.1)应用程序中正确缩放视图的最佳方法是什么

  • 视箱
  • 经理
  • 其他的
我的图片的后缀已经是.scale-xxx.png

在1366x768中,我有:

在WXGA,我有:

以下是我的xaml代码:

 <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="1*" />
        <RowDefinition Height="2*" />
        <RowDefinition Height="6*" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>

    <TextBlock Text="{x:Bind ViewModel.Player, Mode=OneWay}" Margin="20,0,0,0" VerticalAlignment="Center" />

    <Image Grid.Row="0" Source="ms-appx:///Resources/Title/title-app.png" VerticalAlignment="Center" Stretch="None" HorizontalAlignment="Center" />
    <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right" Margin="10,5,25,5">
        <Image Source="ms-appx:///Resources/Rating/star-full.png" Stretch="None"  />
        <TextBlock FontWeight="Bold" Margin="5,5,0,0" Text="{x:Bind ViewModel.Stars, Mode=OneWay}" FontSize="30" VerticalAlignment="Center" />
    </StackPanel>

在我看来,这是VisualStateManager,因为您可以在这里找到
具有MaxWindowWidth或MinWindowWidth的自适应触发器。然后,不同的可视化系统将完美地工作

例如:

 <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="Width1250">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1310"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="Button1.Visibility" Value="Visible"/>
                    <Setter Target="Button2.Visibility" Value="Visible"/>
                    <Setter Target="Button3.Visibility" Value="Visible"/>
                 </VisualState.Setters>
            </VisualState>


希望对您有所帮助:)

正如blueeyes所说,您可以使用视觉状态来实现这一点。如果不想更改设计,只需使用viewbox来适应分辨率(拉伸)

AdaptiveTrigger
在Windows 8.1中不可用(问题中提到了)。是的,这是真的,您必须选择您使用的操作系统。我正在为Windows 10开发UWP,因为我更喜欢
AdaptiveTrigger
。如果您需要Windows 10+,这是一个很好的解决方案。