我在WPF MVVM中制作游戏。我是在全屏幕上进行的,我试图为每个控件定位每个控件(我有宽度,高度和边距的属性)。这有点问题。
有没有办法让控件,页面自动适应屏幕分辨率?
现在我正在制作以下内容: 在视图模型中计算系数(屏幕宽度/设计宽度),然后我将每个宽度乘以该系数。我对身高做同样的事。
是否可以将其放置在xaml中并使其适合每个屏幕分辨率?
答案 0 :(得分:2)
您可以使用ViewBox来自动扩展其子级。
答案 1 :(得分:0)
你正在艰难地做事。使用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>
这就是:
Button
的高度,该行也只有50像素!自VerticalAlignment
设置后,您会看到右上角为参考,“0th”y像素为“第49”(向下)y像素由于Grid有两个RowDefinition设置为Height = *,这意味着它们将占用绘制其他控件后剩余的最大空间量。把它看作是补充。 * + * = 2*
。这意味着每行将占用Y方向上剩余空间的一半。你有:
...
<RowDefinition Height="*"/>
<RowDefinition Height="3*"/>
相反,这意味着(记住,* + 3 * = 4 *)具有高度*的行将占用剩余空间的1/4,而具有高度3 *的行将占用剩余空间的3/4。
希望这有帮助。