2010-09-11 76 views
1

我有一個WPF應用程序將字體渲染到比我預期的更大的尺寸。WPF Windows程序以大字體顯示,但只能在一臺PC上顯示

問題是隻有我寫的WPF應用程序似乎有這種效果,而且問題只發生在一臺計算機上。我寫的所有WPF程序(不只是一個)都會發生這種效果,所有窗口都會顯示效果。

我使用Visual Studio 2008和.NET 3.5 SP1;所有使用WPF編寫的程序。
操作系統是帶有最新服務包的Windows XP。
屏幕分辨率爲1680x1050。
使用Windows XP風格的Windows和按鈕。
字體大小爲正常。
DPI設置是正常尺寸(96 dpi)。

我在另外兩臺具有相同操作系統和設置的計算機上測試了我的應用程序,它看起來很好。我的程序在幾十臺其他計算機上運行,​​但我沒有看到這個問題。

這裏是一個看起來不錯的窗口:
alt text

這裏是顯示問題的窗口(注意左下角的按鈕,字體大小):
alt text

我知道我可以增加寬度並添加邊際來彌補,但我需要理解爲什麼發生這種情況。 我接近發佈,我想確保我的用戶看不到這種效果。

所有的想法讚賞。

+1

計算機是否有可能使用任何種類的「易於訪問」(例如,設置來幫助視力不好的人,我不確定他們在XP上稱它爲何,在Win 7上它是在控制面板「Ease訪問中心「 – Robaticus 2010-09-11 20:58:02

回答

3

我目前沒有運行XP,但我認爲你可以通過顯示屬性自定義窗口標題(和按鈕)中出現的文本的大小(右鍵單擊桌面,選擇屬性,它是第3個或第4個標籤,我認爲)。它可以讓你選擇所選項目的顏色,窗口的背景顏色等。

這將與設置DPI設置分開。

+1

是 - 有一個」字體大小「下拉菜單,選項爲」正常「,」超大「和」大「(按此順序)。 – ChrisF 2010-09-11 21:42:08

+0

打開顯示屬性,第4個選項卡(外觀)將字體大小從普通字體改爲大字體並單擊應用,然後更改回普通並單擊應用。現在一切都很好。感謝幫助。 – Zamboni 2010-09-12 00:37:27

3

這看起來像一個邪惡的XP功能。它可以選擇獨立於視頻適配器DPI設置更改系統字體的大小。對於居住在Easy Asia的XP用戶非常方便,這些字母的字形非常複雜,需要所有像素以使其腳本清晰易讀。

它由具有Form.AutoScaleMode屬性的Windows窗體覆蓋,該屬性默認爲Font而不是Dpi。然而,WPF強烈偏向Dpi,這是正常的縮放方式。

我不認爲這兩個人會見面。告訴您的用戶重置XP設置。它被隱藏在控制面板+顯示設置的某個位置,我不再擁有它來告訴你究竟在哪裏尋找。或者是邏輯替代方法,更改視頻DPI設置以匹配字體大小。這是在IIRC的適配器選項卡中。將其從96改爲120 DPI將是一個很好的猜測。

+0

在這種情況下,將DPI從96更改爲120並沒有任何區別,但感謝您提供的信息。 – Zamboni 2010-09-12 00:34:17

+0

看起來你發現我正在談論的系統字體大小設置。當您更改DPI時,在WPF窗口中看不到任何區別是不健康的。 – 2010-09-12 09:26:01