| File was renamed from Controls/InnerWindow.xaml.cs |
| | |
| | | /// InnerWindow.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class InnerWindow : UserControl, INotifyPropertyChanged |
| | | {
|
| | | { |
| | | #region INotifyPropertyChanged |
| | | public virtual event PropertyChangedEventHandler PropertyChanged; |
| | | |
| | |
| | | { |
| | | RaisePropertyChanged(propertyName); |
| | | } |
| | | }
|
| | | } |
| | | #endregion |
| | |
|
| | | |
| | | #region 属性 |
| | |
|
| | | |
| | | #region Common |
| | | public DragType DragType { get; set; } = DragType.Canvas; |
| | | public CanvasPosition canvasPosition; |
| | | private Canvas canvas; |
| | | public WindowState WindowState { get; set; } = WindowState.Normal; |
| | | public AdornerDecorator ResizeAdornerDecorator { get => VisualTreeHelper.GetChild(this, 0) as AdornerDecorator; }
|
| | |
|
| | | 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
|
| | | get |
| | | { |
| | | return Canvas.GetZIndex(this); |
| | | } |
| | | set |
| | | { |
| | | Canvas.SetZIndex(this, value); |
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 事件 |
| | | public event EventHandler MinEvent; |
| | | public event EventHandler MaxEvent; |
| | | public event EventHandler CloseEvent; |
| | | public event EventHandler ZIndexEvent;
|
| | | #endregion
|
| | |
|
| | | public event EventHandler ZIndexEvent; |
| | | #endregion |
| | | |
| | | #region DependencyProperty |
| | | public Brush HeaderBackground |
| | | { |
| | |
| | | |
| | | public static readonly DependencyProperty HeaderFontColorProperty = |
| | | DependencyProperty.Register("HeaderFontColor", typeof(Brush), typeof(ProgramList), |
| | | new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 225))));
|
| | | #endregion
|
| | |
|
| | | #endregion
|
| | |
|
| | | new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 225)))); |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | public InnerWindow() : this(null) |
| | | { |
| | | |
| | |
| | | }; |
| | | } |
| | | Loaded -= InnerWindow_Loaded; |
| | | }
|
| | |
|
| | | } |
| | | |
| | | #region 拖拽移动相关 |
| | | private void DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e) |
| | | { |
| | |
| | | { |
| | | canvasPosition.Top = Canvas.GetTop(this); |
| | | canvasPosition.Left = Canvas.GetLeft(this); |
| | | }
|
| | | } |
| | | #endregion |
| | | |
| | | /// <summary> |
| | |
| | | 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 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); |
| | |
| | | private void Grid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) |
| | | { |
| | | this.Focus(); |
| | | }
|
| | |
|
| | | private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
| | | {
|
| | |
|
| | | }
|
| | | } |
| | | |
| | | private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | public enum DragType |