2

我有两个用户控件,每个控件都有一个网格。第一个定义了高度和宽度:

<UserControl
    Height="620"
    Width="450">

   <Grid Margin="50, 0, 0, 50">

另一个控件只定义高度:

<UserControl
    Height="768">
    <Grid>

现在我试图在这样的背景下使用两者:

<Grid>
    <Image Source="Assets/background.png" Stretch ="UniformToFill" 
     HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

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

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

        <Controls:EventImagesControl Grid.Row="0" Grid.Column="0"  
                  HorizontalAlignment="Stretch"  
                  VerticalAlignment="Stretch"/>
        <Controls:ScrollControl Grid.Row="0" Grid.Column="1"  
                  HorizontalAlignment="Stretch"  
                  VerticalAlignment="Stretch"/>            
    </Grid>
</Grid>

在以下设置中,一切都按照我的预期进行扩展:

10.6" 1024x768
10.6" 1366x768
10.6" 1920x1080
10.6" 2560x1440
12"   1280x800

但是,当我尝试使用以下设置时,它只会在宽度上而不是在高度上缩放(至少看起来如此)

23" 1920x1080
27" 2560x1440

我试图避免使用ViewBox。我是 windows8/wpf 的新手,但我正在尝试学习如何进行响应式布局。

4

1 回答 1

0

WinRT 渲染引擎可以缩放,所以一切在物理上都是正确的,这就是为什么 4 个 10.6" 测试看起来大小相同,无论屏幕分辨率如何。12" 测试可以很好地缩放,但是因为它的大小接近 10.6" 并且你不会注意到差异(尽管存在差异),最大的屏幕尺寸会缩放,因此您的 450x620 控件看起来像 450x620 控件和 23" 全高清屏幕,这意味着小控件。

实际上,您发布的链接很好地描述了您可以在现代 UI 应用程序中使用的每种缩放类型。如果您确实需要设置最小尺寸,请改用 MinWidth 和 MinHeight 属性。

于 2012-12-11T19:04:51.560 回答