diff --git a/winforms/src/toga_winforms/app.py b/winforms/src/toga_winforms/app.py index 8c98fefa36..0bdddd9f5a 100644 --- a/winforms/src/toga_winforms/app.py +++ b/winforms/src/toga_winforms/app.py @@ -364,6 +364,8 @@ def hide_cursor(self): def winforms_DisplaySettingsChanged(self, sender, event): for window in self.interface.windows: window._impl.update_scale() + if window._impl.toolbar_native is not None: + window._impl.update_toolbar_font_scale() if isinstance(window._impl, MainWindow): window._impl.update_menubar_font_scale() for widget in window.widgets: diff --git a/winforms/src/toga_winforms/window.py b/winforms/src/toga_winforms/window.py index 2fda2d151e..4d9f7422c4 100644 --- a/winforms/src/toga_winforms/window.py +++ b/winforms/src/toga_winforms/window.py @@ -1,5 +1,5 @@ import System.Windows.Forms as WinForms -from System.Drawing import Bitmap, Graphics, Point, Size +from System.Drawing import Bitmap, Font as WinFont, Graphics, Point, Size from System.Drawing.Imaging import ImageFormat from System.IO import MemoryStream @@ -72,13 +72,21 @@ def create_toolbar(self): item.Click += WeakrefCallable(cmd._impl.winforms_handler) cmd._impl.native.append(item) self.toolbar_native.Items.Add(item) - + self.original_toolbar_font = self.toolbar_native.Font elif self.toolbar_native: self.native.Controls.Remove(self.toolbar_native) self.toolbar_native = None self.resize_content() + def update_toolbar_font_scale(self): + if self.toolbar_native is not None: + self.toolbar_native.Font = WinFont( + self.original_toolbar_font.FontFamily, + self.scale_font(self.original_toolbar_font.Size), + self.original_toolbar_font.Style, + ) + def get_position(self): location = self.native.Location return tuple(map(self.scale_out, (location.X, location.Y)))