2010-03-23 51 views
1

我有一個用戶控件包含在一個tabpage中。該窗體已設置AutoScaleMode = AutoScaleMode.Font並且UserControl已設置AutoScaleMode.Inherit。AutoScaleMode.Inherit不繼承

現在,當我放大窗體的字體大小時,字體也會在用戶控件中放大,但控件內容不會縮放。如果我明確地在用戶控件上設置AutoScaleMode.Font,那麼它可以正常工作。

不應該AutoScaleMode.Inherit這樣工作嗎?

回答

1

MSDN給了一個明確的警告:

在.NET Framework 1.0和1.1 ,自動縮放用一個簡單的機制,始終 依賴於當前的系統字體的支持。 該機制現已過時,但 仍支持後向 兼容性。您可以通過設置包含 型在真 自動調整性能,這也將 隱含設置 ContainerControl.AutoScaleMode 屬性設置爲無獲得 舊的縮放行爲。相反,設置 表單的ContainerControl.AutoScaleMode 屬性將會將AutoScale 設置爲false,從而啓用與.NET Framework版本2.0一起引入的更新縮放 機制。

所以:第一個問題:你正在使用哪個框架版本?

第二次猜測:你的控件是在表單初始化後添加的嗎?

+0

Iam使用框架2.0。不,這一切都是在設計時完成的。 – codymanix 2010-06-15 14:00:17

+0

我認爲我們這裏有一部分答案,因爲如果您的控件在設計時被添加,那麼框架可能不會將縮放模式傳播到用戶控件,因爲表單已經處理了UI中的所有內容以進行縮放。 – Samuel 2016-07-25 15:25:43