首页 文章

WPF MVVM fulscreen应用程序分辨率适合

提问于
浏览
0

我在WPF MVVM中制作游戏 . 我是在全屏幕上进行的,我试图为每个控件定位每个控件(我有宽度,高度和边距的属性) . 这有点问题 .

有没有办法让控件,页面自动适应屏幕分辨率?

现在我正在制作以下内容:在视图模型中计算系数(屏幕宽度/设计宽度)然后我将每个宽度乘以该系数 . 我对身高做同样的事 .

是否可以将其放置在xaml中并使其适合每个屏幕分辨率?

2 回答

  • 0

    您可以使用ViewBox来自动缩放其子项 .

  • 2

    你正在艰难地做事 . 使用像 Grid 之类的东西来设置你的布局 .

    看看这个例子:

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="50"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button Content="Hello, World" 
                Grid.Row="0"
                Height="95"/>
        <Button Content="Fixed Size" 
                Grid.Row="1"
                Height="95"
                VerticalAlignment="Top"/>
        <Button Content="Expanded Size 1" 
                Grid.Row="2"/>
        <Button Content="Expanded Size 2" 
                Grid.Row="3"/>
    </Grid>
    

    这是发生的事情:

    • 你的第0行将自动调整大小为1.指定为控件的高度或2.如果未指定高度,它将自动调整大小为内容可见所需的空间大小

    • 你的第1行是固定大小,所以即使设置了 Button 的高度,该行也只有50像素!由于设置了 VerticalAlignment ,您会看到右上角作为参考,"0th" y像素到"49th"(向下)y像素

    • 见#4

    • 由于Grid有两个RowDefinition设置为Height = *,这意味着它们将占用绘制其他控件后剩余的最大空间量 . 把它看作是补充 . * + * = 2* . 这意味着每行将占用Y方向上剩余空间的一半 . 你有过:

    ...
    <RowDefinition Height="*"/>
    <RowDefinition Height="3*"/>
    

    相反,这意味着(记住,* 3 * = 4 )具有高度的行将占用剩余空间的1/4,而具有高度3 *的行将占用剩余空间的3/4 .

    希望这可以帮助 .

相关问题