我不希望我的WPF GUI使用Windows字體大小選項(DPI)進行縮放。這不僅僅是在UserControl上指定固定字體大小的問題,因爲縮放會影響UserControl中的圖像和邊框。是否有一個屬性,我可以在UserControl上設置關閉scalling?如果不是,我該怎麼做?如何防止使用Windows字體大小選項來擴展WPF?
8
A
回答
1
在另外的DpiDecorator,你也將需要修復您的項目的字體大小。例如,在Windows XP中,如果您的設置設置爲大字體,菜單項字體大小設置爲14,並且也使用DPI設置放大,所以如果您不修復MenuItem字體大小或任何其他UI項目字體,您將獲得此項目類型的Window默認值。還記得,用戶可以手動更改字體大小/字型其他項目...
8
基於當前的DPI設置你可以縮小你的用戶控件。例如,如果你包裹着以下DpiDecorator你的用戶控件,那麼它應該是相同的,無論DPI設置的:
public class DpiDecorator : Decorator {
public DpiDecorator() {
this.Loaded += (s, e) => {
Matrix m = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice;
ScaleTransform dpiTransform = new ScaleTransform(1/m.M11, 1/m.M22);
if (dpiTransform.CanFreeze)
dpiTransform.Freeze();
this.LayoutTransform = dpiTransform;
};
}
}
或者你可以說邏輯移動到您的用戶控件。
的代碼以獲得DPI比例因子來自這個blog post。
+0
這個完美的作品! – 2015-04-13 07:14:32
2
Windows包含爲在高DPI設置故障車的應用程序兼容性助手:
一定要離開關(或關閉)「使用Windows XP樣式DPI縮放‘:
,並確保您的應用程序沒有在它集清單一’dpiAware
」條目。
Windows會騙你的應用程序,告訴它,它的96DPI,然後顯卡將縮放整個窗口,爲你。
一切都將是一些模糊的,一般不愉快的使用,但它的工作不夠好,直到你可以修復車WinForm控件。
注:的
dpiAware
清單條目讓您的應用程序告訴Windows,它希望到DPI縮放的退出。如果應用程序已經以高分辨率進行測試,應用程序僅添加此項目。
相關問題
- 1. 如何防止DOMXPath擴展HTML實體?
- 2. 從擴大點擊標題時防止WPF擴展
- 3. 如何防止AppBarLayout擴展?
- 4. iPhone/iPod - 防止字體大小變化
- 5. 如何測量擴展組合框的大小(選擇選項)?
- 6. 防止從水平擴大WPF
- 7. 防止擴展guide_colourbar
- 8. 如何防止iPhone調整我網站的字體大小
- 9. 如何防止html div擴大文本大小時
- 10. 防止WPF Datagrid列調整大小
- 11. WPF擴展器大小問題
- 12. WPF限制擴展器的大小
- 13. 防止子窗體從擴大
- 14. 如何防止擴展接口
- 15. 更改選擇選項字體大小
- 16. 選擇選項字體大小
- 17. 如何防止用戶控件填充選項擴展得太遠
- 18. 如何設置可擴展大小的數組以防止空指針異常?
- 19. Chrome擴展程序 - 防止選項頁面被丟棄
- 20. 防止擴展到textarea
- 21. 防止sed擴展變量
- 22. SAS:防止擴展端點
- 23. 如何通過窗口大小來擴展小部件?
- 24. 防止重新繪製Windows窗體調整大小的控件
- 25. WPF防止datagrid自動調整窗口大小調整大小
- 26. 如何防止DIV中的em字體大小被主CSS字體大小所覆蓋
- 27. 防止將選項卡放入WPF DataGrid
- 28. 如何防止nativeselect contentcell的擴大vaadin
- 29. 如何防止表細胞從擴大
- 30. 如何不斷地每秒擴大和縮小字體大小?
分辨率獨立性是WPF的核心理念之一。關閉它並不是一個好主意,特別是如果它只會影響部分用戶界面的話。實際上在各種計算機上使用的DPI範圍只會增加,具有巨大像素密度的顯示器已經在發展中。 – 2011-05-02 12:58:17
一般來說,我同意你的看法。但在這種情況下,我真的需要關閉縮放,因爲此UserControl託管在未實現縮放的現有Windows窗體應用程序中。其結果是,我有應用程序的部分與大字體和部分應用程序與固定的字體。在Windows窗體應用程序的其餘部分中支持Windows字體設置目前不可行。 – Sylvain 2011-05-02 13:41:12
我想這是有道理的,然後+1。 – 2011-05-02 14:05:57