因此,我在我的顯示器上創建了一個WPF應用程序,該應用程序具有較高的高度(1280 vs 1024)分辨率。它在我的顯示器上工作正常。管理WPF中的應用程序高度(表示高度佔屏幕高度的百分比)
但是,當我把它帶到不同分辨率的顯示器時,整個應用程序會超出顯示器,因此不可用。
任何想法如何我們可以糾正這一點。我的控件和窗口高度的所有高度都是固定的
因此,我在我的顯示器上創建了一個WPF應用程序,該應用程序具有較高的高度(1280 vs 1024)分辨率。它在我的顯示器上工作正常。管理WPF中的應用程序高度(表示高度佔屏幕高度的百分比)
但是,當我把它帶到不同分辨率的顯示器時,整個應用程序會超出顯示器,因此不可用。
任何想法如何我們可以糾正這一點。我的控件和窗口高度的所有高度都是固定的
這很簡單。減少窗戶的高度。你爲什麼使用大的固定高度窗口?顯然,我不知道你的應用程序的設計,但正如你很快發現的那樣,固定的高度(和寬度)往往不能移植到不同的硬件上。
真正的解決方案可能是使用WPF Grid
控件。所有的控件都應該放在網格中,它填充整個窗口。根據您設置網格行和列的方式,隨着窗口大小的變化,您的控件的大小將會縮小。
假設你有四個控件要均勻堆放在你的網格中。你可以這樣做:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
</Grid.RowDefintions>
<MyControl Grid.Row="0"/>
<MyControl Grid.Row="1"/>
<MyControl Grid.Row="2"/>
<MyControl Grid.Row="3"/>
</Grid>
現在每個控制將可用空間的25%,和WPF處理一切爲你的窗口大小的變化。你可以做比這更復雜的佈局,但希望這可以讓你開始。
WPF的設計並不像WinForms那樣,絕對控制寬度,高度和位置會導致這些情況。它的設計是流暢的,允許控件包裝(請參閱WrapPanel),展開和摺疊(請參閱自動或*尺寸)。如果你像WinForms一樣對待它,你會遇到這些問題,並且必須提出複雜的解決方法。 WPF被設計爲解決這些複雜變通辦法(其中包括)的永久解決方案
嘗試尋找WPF的基礎教程,以瞭解如何佈置UI。
希望有所幫助。
您是否以像素爲單位設置窗口大小? – Vale
@Vale:我使用高度爲單位(設備無關)。它在我的顯示器上效果很好,但它不適用於較小的顯示器。我會在Matthew的回答中試用這個方法 – ganeshran
@Smudge:對不起,我不知道我們必須將帖子標記爲回答自己。我通常在評論中感謝海報。我回去,並標記更多回答問題 – ganeshran