Dreamine.UI.Wpf.Equipment 1.0.1
Dreamine.UI.Wpf.Equipment 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
DreamineVkbIconAdorner.cs
이 파일의 문서화 페이지로 가기
1using System;
2using System.Windows;
3using System.Windows.Documents;
4using System.Windows.Input;
5using System.Windows.Media;
6
8
17public sealed class DreamineVkbIconAdorner : Adorner
18{
27 private Action<object?, MouseButtonEventArgs>? _previewMouseDownAction;
28
53 public DreamineVkbIconAdorner(UIElement adornedElement)
54 : base(adornedElement)
55 {
56 IsHitTestVisible = true;
57 Cursor = Cursors.Hand;
58 PreviewMouseDown += OnPreviewMouseDown;
59 }
60
77 public void SetPreviewMouseDownAction(Action<object?, MouseButtonEventArgs> action)
78 => _previewMouseDownAction = action;
79
104 protected override void OnRender(DrawingContext drawingContext)
105 {
106 base.OnRender(drawingContext);
107
108 var adornedSize = AdornedElement.RenderSize;
109 const double width = 34;
110 const double height = 22;
111 var rect = new Rect(
112 Math.Max(0, adornedSize.Width - width - 4),
113 Math.Max(0, adornedSize.Height - height - 4),
114 width,
115 height);
116
117 var background = new SolidColorBrush(Color.FromArgb(230, 45, 52, 64));
118 var border = new Pen(new SolidColorBrush(Color.FromRgb(120, 140, 160)), 1);
119 drawingContext.DrawRoundedRectangle(background, border, rect, 4, 4);
120
121 var keyBrush = new SolidColorBrush(Color.FromRgb(230, 236, 244));
122 const double keySize = 4;
123 for (var row = 0; row < 2; row++)
124 {
125 for (var col = 0; col < 5; col++)
126 {
127 var keyRect = new Rect(rect.Left + 5 + col * 5, rect.Top + 5 + row * 6, keySize, keySize);
128 drawingContext.DrawRoundedRectangle(keyBrush, null, keyRect, 1, 1);
129 }
130 }
131
132 drawingContext.DrawRoundedRectangle(
133 keyBrush,
134 null,
135 new Rect(rect.Left + 8, rect.Top + 17, 18, 2),
136 1,
137 1);
138 }
139
172 private void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
173 {
174 _previewMouseDownAction?.Invoke(sender, e);
175 e.Handled = true;
176 }
177}
void SetPreviewMouseDownAction(Action< object?, MouseButtonEventArgs > action)