使用WinForms,我可以使用Control.Scale
來將控件放大。當我這樣做時,所有子控件都會重新定位並正確縮放,但字體大小保持不變。將字體與控件一起縮放
是否有一種簡單的方法來強制字體向上/向下縮放,或者是控制縮放時手動更新所有控件的字體的唯一方法?
背景:我正在開發一個程序,我需要支持放大/縮小標籤,文本框等,以便視力不佳的用戶更易讀。
使用WinForms,我可以使用Control.Scale
來將控件放大。當我這樣做時,所有子控件都會重新定位並正確縮放,但字體大小保持不變。將字體與控件一起縮放
是否有一種簡單的方法來強制字體向上/向下縮放,或者是控制縮放時手動更新所有控件的字體的唯一方法?
背景:我正在開發一個程序,我需要支持放大/縮小標籤,文本框等,以便視力不佳的用戶更易讀。
我找不到解決方案,所以最後我手動縮放字體。
我使用Krypton Toolkit *強烈建議,偉大的控制庫),它支持主題。我只是使用反射來查找所有字體屬性並將其擴展。
反過來去做。更改字體大小,控件將自動縮放以適應更大的字體。例如:
public partial class Form1 : Form {
float mDesignSize;
int mIncrement;
public Form1() {
InitializeComponent();
mDesignSize = this.Font.SizeInPoints;
}
private void adjustFont() {
float size = mDesignSize * (1 + mIncrement/7f);
this.Font = new Font(this.Font.FontFamily, size);
}
private void btnIncreaseFontSize_Click(object sender, EventArgs e) {
mIncrement += 1;
adjustFont();
}
private void btnDecreateFontSize_Click(object sender, EventArgs e) {
mIncrement -= 1;
adjustFont();
}
}
你可能想創建一些有點佈局管理器,然後無論如何這將做到這一點...我認爲這就是我們在我們的案例 WPF也許能夠做到這一點.. – badbadboy 2008-11-20 19:39:11
必須使用.NET 2。我可以更新寫入hode來更新字體,但是如果.NET支持這種開箱即用的方式,我想避免做額外的工作。 – Sumrak 2008-11-20 19:56:52