From 6e68e53b1e86293009644b9612fe5a2020f87b22 Mon Sep 17 00:00:00 2001 From: PrefacedCorg <1876568293@qq.com> Date: Wed, 15 Apr 2026 14:21:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20BoardToolbarButton.xaml.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InkCanvas.Controls/BoardToolbarButton.xaml.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/InkCanvas.Controls/BoardToolbarButton.xaml.cs b/InkCanvas.Controls/BoardToolbarButton.xaml.cs index 3e0b4e9b..1ffb6a9d 100644 --- a/InkCanvas.Controls/BoardToolbarButton.xaml.cs +++ b/InkCanvas.Controls/BoardToolbarButton.xaml.cs @@ -22,7 +22,8 @@ namespace Ink_Canvas.Controls private static void OnLabelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var button = (BoardToolbarButton)d; - button.LabelTextBlock.Text = (string)e.NewValue; + if (button.LabelTextBlock != null) + button.LabelTextBlock.Text = (string)e.NewValue; } public string Label @@ -38,7 +39,7 @@ namespace Ink_Canvas.Controls private static void OnIconGeometryChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var button = (BoardToolbarButton)d; - if (e.NewValue is string geometry && !string.IsNullOrEmpty(geometry)) + if (button.IconGeometryInternal != null && e.NewValue is string geometry && !string.IsNullOrEmpty(geometry)) { button.IconGeometryInternal.Geometry = Geometry.Parse(geometry); } @@ -73,7 +74,7 @@ namespace Ink_Canvas.Controls private static void OnIconBrushChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var button = (BoardToolbarButton)d; - if (e.NewValue is Brush brush) + if (button.IconGeometryInternal != null && e.NewValue is Brush brush) { button.IconGeometryInternal.Brush = brush; } @@ -115,7 +116,16 @@ namespace Ink_Canvas.Controls public BoardToolbarButton() { InitializeComponent(); + Loaded += BoardToolbarButton_Loaded; + } + + private void BoardToolbarButton_Loaded(object sender, RoutedEventArgs e) + { UpdateCornerRadius(Position); + if (!string.IsNullOrEmpty(IconGeometry)) + { + IconGeometryInternal.Geometry = Geometry.Parse(IconGeometry); + } } private void UpdateCornerRadius(ButtonPosition position)