2013-08-26 74 views
7

我有一個專爲1900x1200分辨率設計的wpf應用程序,但我們的一些用戶使用Windows顯示設置將所有內容的大小調整爲125%-150%,是否有辦法應用程序忽略這些設置並仍然正常顯示?有一個WPF應用程序忽略DPI設置

我見過一個叫SetProcessDPIAware here的東西,但還沒有運氣。

這裏是顯示縮放應用的截屏開到150% Application with Scaling

正如你可以看到應用程序來說太小了,有沒有辦法得到它是正確的大小。

+0

您可以完全禁用WPF中的dpi縮放,方法如下[disable-dpi-awareness-for-wpf-application](https://stackoverflow.com/questions/13858665/disable-dpi-awareness- for-wpf-application/44171474#44171474) –

+0

您可以在[disable-dpi-awareness-for-wpf-application]中爲.net 4.5中的WPF禁用dpi縮放(https://stackoverflow.com/questions/13858665/disable -dpi意識換WPF應用程序/ 44171474#44171474) –

回答

1

在這種情況下,Dpi認知將無濟於事。它只會改變CompositionTarget.TransformToDevice矩陣,但控件大小不會改變。

我使用視圖來縮放所有內容。在我的應用程序的所有尺寸是專爲表面臨3畫像:

<Window> 
    <Viewbox Stretch="Uniform"> 
     <Grid Width="1440" Height="2160"> 
      <!-- ... --> 
     </Grid> 
    </Viewbox> 
</Window> 

您可以在屏幕上DPI計算視圖框尺寸築底。看到這個答案:https://stackoverflow.com/a/12414433/991267