首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

WPF 控制項字體大小隨視窗縮放自適應解決方案

     編輯:程式設計綜合問答

WPF 控制項的 FontSize 屬性預設不會隨視窗大小自動縮放。若需實現字體跟隨視窗比例變化,需透過程式碼在 SizeChanged 事件中動態計算並設定。

核心實作邏輯

public MainWindow() {
    InitializeComponent();
    this.SizeChanged += OnWindowSizeChanged;
}

private void OnWindowSizeChanged(object sender, SizeChangedEventArgs e) {
    double baseWidth = 800;  // 設計時基準寬度
    double baseFontSize = 14; // 基準字體大小
    double scale = e.NewSize.Width / baseWidth;
    double newFontSize = baseFontSize * scale;
    
    // 套用至整個視窗或特定容器
    this.FontSize = Math.Max(8, newFontSize); // 設定最小字體限制
}

進階技巧:使用 Viewbox 實現整體縮放

若允許整個介面等比例縮放(包含控制項大小),將根容器包裹於 Viewbox 中即可:

<Viewbox Stretch="Uniform">
    <Grid Width="800" Height="600"> 
        <!-- 你的介面內容 -->
    </Grid>
</Viewbox>

優缺點比較

  • 動態 FontSize:彈性高,可針對不同控制項客製化縮放邏輯,但需自行處理最小/最大限制與佈局重排。
  • Viewbox:零程式碼實現整體縮放,但會導致介面模糊、觸控目標過小,不適合資訊密集型應用。

參考資源

CSDN 範例下載:WPF 字體自適應範例

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved