我在WPF MVVM中製作遊戲。我正在全屏,並試圖爲每個控件定位每個控件(我有屬性的寬度,高度和邊距)。這是沒有問題的。WPF MVVM全屏應用程序分辨率合適
有沒有什麼辦法讓控件,頁面自動適合屏幕分辨率?
現在我正在做以下事情: 在視圖模型im計算係數(屏幕寬度/設計寬度),然後我乘以這個係數的每個寬度。我的身高也一樣。
是否可以將其放置在xaml中並使其適合每個屏幕分辨率?
我在WPF MVVM中製作遊戲。我正在全屏,並試圖爲每個控件定位每個控件(我有屬性的寬度,高度和邊距)。這是沒有問題的。WPF MVVM全屏應用程序分辨率合適
有沒有什麼辦法讓控件,頁面自動適合屏幕分辨率?
現在我正在做以下事情: 在視圖模型im計算係數(屏幕寬度/設計寬度),然後我乘以這個係數的每個寬度。我的身高也一樣。
是否可以將其放置在xaml中並使其適合每個屏幕分辨率?
你正在努力工作。使用類似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
設置,你會看到,右上角爲您的參考,「零」 Y像素的「第49次」(下)Y像素由於電網具有兩個RowDefinition設置爲Height = *,這意味着它們將佔用其他控件繪製後剩餘的最大空間量。把它看作是補充。 * + * = 2*
。這意味着每行將佔用Y方向剩餘空間的一半。您有:
...
<RowDefinition Height="*"/>
<RowDefinition Height="3*"/>
代替,這意味着(記得,* + 3 * = 4 *)與身高的行*將剩餘空間的1/4,具有高度3行*將佔用3 /剩餘空間的4個。
希望這會有所幫助。
你可能會使用一個ViewBox它會自動縮放它的孩子。
那麼,它可能適用於像主菜單這樣的靜態窗口,但是在約30個元素的遊戲窗口中,其中一些需要在遊戲中改變位置會給我帶來可怕的矩陣。另外我認爲管理層在這個矩陣中移動會有問題。 – user1736332
我想,我只是回答如何使控件適合全屏幕分辨率的問題。我認爲你最好打賭它寫一個自定義的網格控件來處理你所有的尺寸。 – Kcvin
也別忘了RowSpan和ColumnSpan。 – Kcvin