From 25dd2203bb3b995d73c43733b3aaa049ec28b4a9 Mon Sep 17 00:00:00 2001
From: chr <chrry550@163.com>
Date: 星期二, 12 三月 2024 09:42:43 +0800
Subject: [PATCH] 初版Step运行代码;

---
 Controls/InnerWindow.xaml.cs |  143 +++++++++++++++++++++++------------------------
 1 files changed, 70 insertions(+), 73 deletions(-)

diff --git a/Controls/InnerWindow.xaml.cs b/Controls/InnerWindow.xaml.cs
index bdd3b49..6c89b76 100644
--- a/Controls/InnerWindow.xaml.cs
+++ b/Controls/InnerWindow.xaml.cs
@@ -1,4 +1,4 @@
-锘縰sing CommonModel;
+锘縰sing HandyControl.Controls;
 using System;
 using System.ComponentModel;
 using System.Runtime.CompilerServices;
@@ -20,7 +20,8 @@
     /// InnerWindow.xaml 鐨勪氦浜掗�昏緫
     /// </summary>
     public partial class InnerWindow : UserControl, INotifyPropertyChanged
-    {
+    {
+        #region INotifyPropertyChanged
         public virtual event PropertyChangedEventHandler PropertyChanged;
 
         protected virtual void RaisePropertyChanged(string name)
@@ -35,38 +36,46 @@
             {
                 RaisePropertyChanged(propertyName);
             }
-        }
-
-        public CanvasPosition canvasPosition;
-
+        }
+        #endregion
+
+        #region 灞炴��
+
+        #region Common
         public DragType DragType { get; set; } = DragType.Canvas;
-
-        public int Zindex
-        {
-            set
-            {
-                Canvas.SetZIndex(this, value);
-            } 
-        }
-
-        public AdornerDecorator ResizeAdornerDecorator { get => VisualTreeHelper.GetChild(this, 0) as AdornerDecorator; }
-
-
-        public event EventHandler MinEvent;
-        public event EventHandler MaxEvent;
-        public event EventHandler CloseEvent;
-        public event EventHandler ZIndexEvent;
-
+        public CanvasPosition canvasPosition;
+        private Canvas canvas;
         public WindowState WindowState { get; set; } = WindowState.Normal;
-
+        public AdornerDecorator ResizeAdornerDecorator { get => VisualTreeHelper.GetChild(this, 0) as AdornerDecorator; }
+
         private string _Title;
-
         public string Title
         {
             get { return _Title; }
             set => RaiseAndSetIfChanged(ref _Title, value);
-        }
-
+        }
+
+        public int Zindex
+        {
+            get
+            {
+                return Canvas.GetZIndex(this);
+            }
+            set
+            {
+                Canvas.SetZIndex(this, value);
+            }
+        }
+        #endregion
+
+        #region 浜嬩欢
+        public event EventHandler MinEvent;
+        public event EventHandler MaxEvent;
+        public event EventHandler CloseEvent;
+        public event EventHandler ZIndexEvent;
+        #endregion
+
+        #region DependencyProperty
         public Brush HeaderBackground
         {
             get { return (Brush)GetValue(HeaderBackgroundProperty); }
@@ -85,8 +94,11 @@
 
         public static readonly DependencyProperty HeaderFontColorProperty =
             DependencyProperty.Register("HeaderFontColor", typeof(Brush), typeof(ProgramList),
-                new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 225))));
-
+                new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 225))));
+        #endregion
+
+        #endregion
+
         public InnerWindow() : this(null)
         {
 
@@ -103,26 +115,7 @@
 
             DataContext = this;
             InitializeComponent();
-            SizeChanged += InnerWindow_SizeChanged;
             Loaded += InnerWindow_Loaded;
-        }
-
-        private void InnerWindow_SizeChanged(object sender, SizeChangedEventArgs e)
-        {
-            //throw new NotImplementedException();
-        }
-
-        private void InitThumb()
-        {
-            
-        }
-
-        // 鏂瑰舰宸ュ巶      
-        FrameworkElementFactory GetFactory(Brush back)
-        {
-            FrameworkElementFactory fac = new FrameworkElementFactory(typeof(Rectangle));
-            fac.SetValue(Rectangle.FillProperty, back);
-            return fac;
         }
 
         private void InnerWindow_Loaded(object sender, RoutedEventArgs e)
@@ -138,15 +131,9 @@
                 };
             }
             Loaded -= InnerWindow_Loaded;
-        }
-
-        private Canvas canvas;
-
-        private void Button_Click(object sender, RoutedEventArgs e)
-        {
-            Visibility = Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
-        }
-
+        }
+
+        #region 鎷栨嫿绉诲姩鐩稿叧
         private void DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
         {
             switch (DragType)
@@ -192,12 +179,8 @@
         {
             canvasPosition.Top = Canvas.GetTop(this);
             canvasPosition.Left = Canvas.GetLeft(this);
-        }
-
-        private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e)
-        {
-
-        }
+        }
+        #endregion
 
         /// <summary>
         /// 娣诲姞鍒扮敾甯冧笂
@@ -221,8 +204,23 @@
             }
             Canvas.SetLeft(this, canvasPosition == null ? 0 : canvasPosition.Left);
             Canvas.SetTop(this, canvasPosition == null ? 0 : canvasPosition.Top);
-        }
-
+            canvas.SizeChanged += Canvas_SizeChanged;
+        }
+
+        private void Canvas_SizeChanged(object sender, SizeChangedEventArgs e)
+        {
+            Size newSize = e.NewSize;
+            Size previousSize = e.PreviousSize;
+
+            double xRate = newSize.Width / previousSize.Width;
+            double yRate = newSize.Height / previousSize.Height;
+
+            Canvas.SetLeft(this, Canvas.GetLeft(this) * xRate);
+            Canvas.SetTop(this, Canvas.GetTop(this) * yRate);
+            this.Width = this.Width * xRate;
+            this.Height = this.Height * yRate;
+        }
+
         private void Min_Click(object sender, RoutedEventArgs e)
         {
             MinEvent?.Invoke(this, null);
@@ -245,14 +243,13 @@
 
         private void Grid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
         {
-
-        }
-    }
-
-    public class InnerWindowProp : NotifyBase
-    {
-
-
+            this.Focus();
+        }
+
+        private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+        {
+
+        }
     }
 
     public enum DragType

--
Gitblit v1.9.1