From bf2a577f83b276fa446d4dbfd6d8e0471cef79fa Mon Sep 17 00:00:00 2001 From: Tom Edwards Date: Tue, 16 Dec 2025 11:50:17 +0100 Subject: [PATCH 1/5] Added support for platform text scaling, disabled by default Only TextBlock, Inline, and TextPresenter scale text by themselves No change to low-level text rendering or FontSize values Implemented for iOS and Windows Windows scaling is currently uniform regardless of base font size, which is incorrect --- samples/ControlCatalog/MainView.xaml | 3 +- .../Platform/DefaultPlatformSettings.cs | 10 ++-- .../Platform/IPlatformSettings.cs | 12 ++++- .../Documents/IInlineHost.cs | 2 +- src/Avalonia.Controls/Documents/Inline.cs | 2 +- .../Documents/TextElement.cs | 23 +++++++++ .../IPlatformTextScaleable.cs | 17 +++++++ .../Presenters/TextPresenter.cs | 36 ++++++++++++-- .../Primitives/TextSelectionCanvas.cs | 2 +- src/Avalonia.Controls/SelectableTextBlock.cs | 6 +-- src/Avalonia.Controls/TextBlock.cs | 35 ++++++++++++-- src/Avalonia.Controls/TopLevel.cs | 12 +++++ .../Avalonia.Win32/Win32PlatformSettings.cs | 47 +++++++++++++++---- src/Windows/Avalonia.Win32/WinRT/winrt.idl | 9 ++++ src/iOS/Avalonia.iOS/PlatformSettings.cs | 20 ++++++++ 15 files changed, 210 insertions(+), 26 deletions(-) create mode 100644 src/Avalonia.Controls/IPlatformTextScaleable.cs diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 984daf1200..401d96fad2 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -6,7 +6,8 @@ xmlns:models="using:ControlCatalog.Models" xmlns:pages="using:ControlCatalog.Pages" xmlns:viewModels="using:ControlCatalog.ViewModels" - x:DataType="viewModels:MainWindowViewModel"> + x:DataType="viewModels:MainWindowViewModel" + TextElement.IsPlatformTextScalingEnabled="True">