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 Stretch="Uniform">
<Grid Width="800" Height="600">
<!-- 你的介面內容 -->
</Grid>
</Viewbox>
CSDN 範例下載:WPF 字體自適應範例