2008-11-20 69 views
1

使用WinForms,我可以使用Control.Scale來將控件放大。當我這樣做時,所有子控件都會重新定位並正確縮放,但字體大小保持不變。將字體與控件一起縮放

是否有一種簡單的方法來強制字體向上/向下縮放,或者是控制縮放時手動更新所有控件的字體的唯一方法?

背景:我正在開發一個程序,我需要支持放大/縮小標籤,文本框等,以便視力不佳的用戶更易讀。

+0

你可能想創建一些有點佈局管理器,然後無論如何這將做到這一點...我認爲這就是我們在我們的案例 WPF也許能夠做到這一點.. – badbadboy 2008-11-20 19:39:11

+0

必須使用.NET 2。我可以更新寫入hode來更新字體,但是如果.NET支持這種開箱即用的方式,我想避免做額外的工作。 – Sumrak 2008-11-20 19:56:52

回答

1

我找不到解決方案,所以最後我手動縮放字體。

我使用Krypton Toolkit *強烈建議,偉大的控制庫),它支持主題。我只是使用反射來查找所有字體屬性並將其擴展。

2

反過來去做。更改字體大小,控件將自動縮放以適應更大的字體。例如:

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(); 
    } 
    }