From 0f58c0039852f4be3d449906e9f2fb54332126c6 Mon Sep 17 00:00:00 2001
From: tangxu <tangxu76880903>
Date: 星期一, 14 十月 2024 15:43:53 +0800
Subject: [PATCH] 引用丢失!

---
 WinFrmUI/DPumpHydr.WinFrmUI.Ribbon/Component Classes/RibbonButton.cs |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/WinFrmUI/DPumpHydr.WinFrmUI.Ribbon/Component Classes/RibbonButton.cs b/WinFrmUI/DPumpHydr.WinFrmUI.Ribbon/Component Classes/RibbonButton.cs
index f484806..fbe5f8a 100644
--- a/WinFrmUI/DPumpHydr.WinFrmUI.Ribbon/Component Classes/RibbonButton.cs
+++ b/WinFrmUI/DPumpHydr.WinFrmUI.Ribbon/Component Classes/RibbonButton.cs
@@ -641,9 +641,10 @@
             {
                 if (Image != null)
                 {
+                    int marginTop = Owner == null ? 0 : Owner.ItemMargin.Top;
                     return new Rectangle(
                     Bounds.Left + ((Bounds.Width - Image.Width) / 2),
-                    Bounds.Top + Owner.ItemMargin.Top,
+                    Bounds.Top + marginTop,
                     Image.Width,
                     Image.Height);
                 }
@@ -687,11 +688,22 @@
 
             if (sMode == RibbonElementSizeMode.Large)
             {
-                return Rectangle.FromLTRB(
-                    Bounds.Left + Owner.ItemMargin.Left,
-                    Bounds.Top + Owner.ItemMargin.Top + imgh,
-                    Bounds.Right - Owner.ItemMargin.Right,
-                    Bounds.Bottom - Owner.ItemMargin.Bottom);
+                if (Owner == null)
+                {
+                    return Rectangle.FromLTRB(
+                        Bounds.Left,
+                        Bounds.Top + imgh,
+                        Bounds.Right,
+                        Bounds.Bottom);
+                }
+                else
+                {
+                    return Rectangle.FromLTRB(
+                        Bounds.Left + Owner.ItemMargin.Left,
+                        Bounds.Top + Owner.ItemMargin.Top + imgh,
+                        Bounds.Right - Owner.ItemMargin.Right,
+                        Bounds.Bottom - Owner.ItemMargin.Bottom);
+                }
             }
 
             // ddw is the dropdown arrow width
@@ -834,7 +846,7 @@
         /// <returns></returns>
         public override Size MeasureSize(object sender, RibbonElementMeasureSizeEventArgs e)
         {
-            if (!Visible && !Owner.IsDesignMode())
+            if (Owner == null || (!Visible && !Owner.IsDesignMode()))
             {
                 SetLastMeasuredSize(new Size(0, 0));
                 return LastMeasuredSize;

--
Gitblit v1.9.3