如何在Windows 8中使应用程序适应多种分辨率

时间:2013-01-29 06:55:07

标签: c# xaml windows-8 grid viewbox

我在xaml中有下面的布局代码

<Grid>
   <StackPanel x:Name="TestStackPanel" Grid.Row="2" Orientation="Horizontal">
      <ScrollViewer x:Name="TestScrollViewer" Height="300" VerticalScrollBarVisibility="Auto">
         <GridView x:Name="TestGridView"
            Width="940"
            Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
            ItemTemplate="{StaticResource TestTemplate}"
            ItemsPanel="{StaticResource TestItemPanelTemplate}" 
            ItemContainerStyle="{StaticResource TestItemStyle}" 
            SelectionMode="None"                                  
            HorizontalAlignment="Left"/>
       </ScrollViewer>
       <Button x:Name="TestButton" Content="ClickMe" VerticalAlignment="Bottom" Margin="10,5,0,0" Click="TestButton_Click"/>
 </StackPanel>
</Grid>

这在1366 * 768分辨率下显示良好,但如果我将分辨率更改为2560 * 1400,则无法按预期显示,我知道这是肯定的,但如何将布局调整到不同的分辨率?我试图添加一个ViewBox来封装Grid,它在FullScreenLandScape视图中运行良好,但是当我将应用程序更改为Snap视图时,Grid会显示在一个小空间中。

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

在UI元素处注册LayoutUpdated事件。
并根据Window.Current.Bounds.Width重新计算布局。