2017-05-22 52 views
0

我有一個WPF應用程序,適合我的屏幕分辨率1920 * 1080的計算機屏幕。但同樣的WPF應用程序不適合我的Microsoft Surface屏幕具有相同的分辨率1920 * 1080.確切的問題是,它不顯示該小筆記本電腦中的滾動條。問題出現在XAML中我遇到的問題頁面和承載它的窗口。任何建議,將不勝感激。謝謝。WPF應用程序不適合所有的顯示器屏幕

代碼就是這樣的。

<Page x:Class="form_Dock" Background="#FF19191E" MouseEnter="Page_MouseEnter" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:ABC.UI" SnapsToDevicePixels="True"> 

回答

0

這可能是由WPF使用設備無關像素來確定應用程序的大小造成的縮放問題。 Surface屏幕非常小,所以在Windows中可能會進行一些縮放以補償,這會將窗口的大小縮小。

您可能能夠通過窗口元素設置SnapsToDevicePixels到真正解決您的問題:

https://msdn.microsoft.com/en-us/library/system.windows.uielement.snapstodevicepixels(v=vs.110).aspx

而且,這也解釋了設備無關的像素相當不錯:

https://wpf.2000things.com/2013/02/19/759-device-independent-units-dips/

+0

喜西蒙。非常感謝您的建議。我試圖在我的代碼中使用它。下面是我使用它的一段代碼。 。這是我需要把代碼放入SnapsToDevicePixels =「True」的地方嗎?這是標籤不在Windows中。有關係嗎?我在表面測試過。它不起作用。 – Robert

+0

你應該在根元素上設置SnapToDevicePixels,它通常是一個Window對象。頁面需要被包含在另一個元素中才能顯示,所以把SnapToDevicePixels放在那裏是不對的。您的WPF項目是在應用程序窗口還是瀏覽器中運行?如果你給頁面的寬度比它的容器寬,那麼它可能會顯示滾動條。 –

+0

你提到過Prism和Wpftoolkit - 你在使用他們的控件嗎? –