2013-08-06 90 views
1

雖然MinWidth和MinHeight屬性在Windows分辨率(在Windows 7上)具有相同的值,但我的應用程序仍未完全顯示在屏幕上(某些頂部和部分區域位於權利被削減)。例如:爲什麼AutoScaleMode屬性不包含在WPF中?

MinWidth="1280" MinHeight="960" 

而Windows分辨率設置爲1280x960。仍然應用程序沒有完全顯示。但是,如果我將DPI分辨率更改爲較小(96dpi),則應用程序顯示正常。如何將AutoScaleMode設置爲WPF應用程序中的dpi。

即使@Abe Heidebrecht回答後,我看不出結果有什麼改善。例如,下面是我的用戶界面是什麼樣子時,我最大的應用程序:(請注意,我有一秒鐘監控和黑色區域是第二臺顯示器上)

enter image description here

+3

顯示您的XAML。很可能你使用Visual Studio設計器創建了你的UI,而不是用正確的方式來做(這是你自己手動輸入XAML)。因此你的用戶界面充滿了固定的大小和位置。順便說一句,WPF默認情況下是獨立的分辨率,並且不需要'AutoScale'或任何其他恐龍winforms的可怕黑客。 –

+0

Winforms ==恐龍。從來沒有一個更真實的詞語。 +1對視覺工作室設計師的評論。爲什麼MS對我們做這個:( – Gusdor

回答

4

WPF使用設備無關的像素。在WPF中,1像素應該是1/96英寸(因爲在開發WPF時96DPI是常見的)。因此,如果您的顯示器具有更高的DPI,WPF會實際報告您的像素數多於1280x960。 Here is a blog post that I thought explained things well

我會用SystemParameters類來獲得你以後:

Width="{DynamicResource {x:Static SystemParameters.FullPrimaryScreenWidthKey}}" 
Height="{DynamicResource {x:Static SystemParameters.FullPrimaryScreenHeightKey}}" 
相關問題