2016-07-26 40 views
0

我有一個桌面應用程序,我發送給客戶端。對於所有機器上的一個客戶端,它的分辨率一直看起來不對。我創建了一個虛擬機並將其設置爲他們的分辨率,當然,一切看起來都很好。他們在1280x1024。該應用程序在其他客戶的約三十臺其他機器上運行就好了。我讓他們搶了絲網印刷,那就是: customer screen shot that is malformed from their computer screen how it looks on dev, test, and other customers computersVB.NET Windows APP表單更改外觀(不需要)

需要幫助!我不知道爲什麼/這裏需要什麼。

+0

他們使用什麼Windows? – Dima

+0

嗨迪瑪,都是Windows 10 –

+0

請看我的回答 – Dima

回答

0
+0

有沒有什麼辦法解決這個問題,在Windows 10上不涉及客戶端PC上的配置? –

+0

是的,請參閱我答案中的最後一個鏈接 - 您可以更新您的應用。 – Dima

+0

謝謝!我讀過這個答案,我想這是說我需要關閉DPI虛擬化?我不明白它在哪裏解釋如何實際做到這一點...... –

-1

你的錯誤是非常共同。 您只需要更改align屬性並禁用頂部屬性。

+0

嗨葉,感謝您的幫助,能否指導我多一點,改變什麼的對齊屬性並禁用頂端什麼?對不起,房子的圖形方面不是我的專業.. –

0

Autoscalemode設置爲FONT。我應該把它設置爲無?不太確定那是什麼設置......我在VS 2015. - 計算Smomputation

作爲第一步,我建議您聲明您的應用程序爲DPI。這通過app.manifest文件完成。

您可以通過VS訪問該文件:

項目菜單 - > ProjName屬性 - >應用程序標籤 - >查看Windows設置按鈕

查找該文件中的代碼塊:

<!-- 
    <application xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <windowsSettings> 
     <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> 
    </windowsSettings> 
    </application> 
    --> 

此部分在默認情況下已被註釋掉。要啓用它,請刪除第一行(<!--)和最後一行(-->)。

這樣做會阻止操作系統進行DPI虛擬化,該操作系統可以視爲顯示錶單及其組件的表單位圖縮放。

如果生成的顯示仍然混亂,請嘗試將Form.AutoScaleMode設置爲DpiNone

+0

很酷非常感謝你和非常明確的指示!我會做出這一改變併發送給我的客戶,看看它是否有效。當我在測試機器上更改DPI時,我仍然沒有這個問題,所以我無法在本地進行測試,但是你永遠不知道。 Fingergers crossed .. –

+0

@ComputationSmomputation,當你說「當我在測試機器上更改DPI」時,你是否在編譯/運行代碼之前更改它?理想情況下,在一個DPI設置下編譯並在另一個下進行測試。 – TnTinMn