【问题标题】:WPF MVVM fulscreen application resolution fitWPF MVVM 全屏应用分辨率适配
【发布时间】:2013-11-21 19:34:28
【问题描述】:

我正在 WPF MVVM 中制作游戏。我在全屏模式下进行,我试图为每个控件定位每个控件(我有宽度、高度和边距的属性)。问题不大。

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

现在我正在做以下事情: 在视图模型中即时计算系数(屏幕宽度/设计宽度),然后我将每个宽度乘以该系数。我对身高也是如此。

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

【问题讨论】:

    标签: wpf mvvm fullscreen resolution


    【解决方案1】:

    您可以使用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>
      

      会发生这样的事情:

      1. 您的第 0 行将自动调整大小为 1. 指定为控件的高度或 2. 如果您不指定高度,它将自动调整为内容可见所需的空间
      2. 您的第 1 行是固定大小,因此即使设置了 Buttons 的高度,该行也只有 50 像素!由于设置了VerticalAlignment,您会看到作为参考的右上角,“0th”y 像素到“49th”(下)y 像素
      3. 参见#4
      4. 由于 Grid 有两个 RowDefinition 设置为 Height = *,这意味着它们将占用在绘制其他控件后剩余的最大空间量。将其视为加法。 * + * = 2*。这意味着每一行将占据 Y 方向剩余空间的一半。你有:

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

        相反,这意味着(请记住,* + 3* = 4*)高度为 * 的行将占用剩余空间的 1/4,高度为 3* 的行将占用剩余空间的 3/4。

      希望这会有所帮助。

      【讨论】:

      • 好吧,它可能对像主菜单这样的静态窗口有好处,但是在具有大约 30 个元素的游戏窗口上,其中一些元素需要在游戏过程中改变位置,这会给我带来可怕的矩阵。此外,我认为在这个矩阵上的管理会有问题。
      • 我想,我只是在回答有关如何使控件适合全屏分辨率的问题。我认为最好的办法是编写一个自定义网格控件来处理你的所有大小。
      • 另外,不要忘记 RowSpan 和 ColumnSpan。
      猜你喜欢
      • 2011-12-23
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 2011-02-28
      相关资源
      最近更新 更多