|
1 | 1 | using Ink_Canvas.Helpers; |
2 | 2 | using System; |
3 | 3 | using System.Collections.Generic; |
4 | | -using System.Threading.Tasks; |
5 | 4 | using System.Windows; |
6 | 5 | using System.Windows.Controls; |
7 | 6 | using System.Windows.Ink; |
@@ -85,6 +84,30 @@ private void ColorSwitchCheck() |
85 | 84 |
|
86 | 85 | bool isUselightThemeColor = false, isDesktopUselightThemeColor = false; |
87 | 86 | int lastDesktopInkColor = 1, lastBoardInkColor = 5; |
| 87 | + Dictionary<int, Color> inkColorLightThemeMapping = new Dictionary<int, Color> |
| 88 | + { |
| 89 | + { 0, Colors.Black }, // Black |
| 90 | + { 1, Color.FromRgb(239, 68, 68) }, // Red |
| 91 | + { 2, Color.FromRgb(34, 197, 94) }, // Green |
| 92 | + { 3, Color.FromRgb(59, 130, 246) }, // Blue |
| 93 | + { 4, Color.FromRgb(250, 204, 21) }, // Yellow |
| 94 | + { 5, Colors.White }, // White |
| 95 | + { 6, Color.FromRgb(236, 72, 153) }, // Pink |
| 96 | + { 7, Color.FromRgb(20, 184, 166) }, // Teal |
| 97 | + { 8, Color.FromRgb(249, 115, 22) }, // Orange |
| 98 | + }; |
| 99 | + Dictionary<int, Color> inkColorDarkThemeMapping = new Dictionary<int, Color> |
| 100 | + { |
| 101 | + { 0, Colors.Black }, // Black |
| 102 | + { 1, Color.FromRgb(220, 38, 38) }, // Red |
| 103 | + { 2, Color.FromRgb(22, 163, 74) }, // Green |
| 104 | + { 3, Color.FromRgb(37, 99, 235) }, // Blue |
| 105 | + { 4, Color.FromRgb(234, 179, 8) }, // Yellow |
| 106 | + { 5, Colors.White }, // White |
| 107 | + { 6, Color.FromRgb(147, 51, 234) }, // Pink (Purple) |
| 108 | + { 7, Color.FromRgb(13, 148, 136) }, // Teal |
| 109 | + { 8, Color.FromRgb(234, 88, 12) } // Orange |
| 110 | + }; |
88 | 111 |
|
89 | 112 | private void CheckColorTheme(bool changeColorTheme = false) |
90 | 113 | { |
@@ -139,75 +162,13 @@ private void CheckColorTheme(bool changeColorTheme = false) |
139 | 162 | { // Highlighter Purple |
140 | 163 | inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(147, 51, 234); |
141 | 164 | } |
142 | | - else if (inkColor == 0) |
143 | | - { // Black |
144 | | - inkCanvas.DefaultDrawingAttributes.Color = Colors.Black; |
145 | | - } |
146 | | - else if (inkColor == 5) |
147 | | - { // White |
148 | | - inkCanvas.DefaultDrawingAttributes.Color = Colors.White; |
149 | | - } |
150 | 165 | else if (isUselightThemeColor) |
151 | 166 | { |
152 | | - if (inkColor == 1) |
153 | | - { // Red |
154 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(239, 68, 68); |
155 | | - } |
156 | | - else if (inkColor == 2) |
157 | | - { // Green |
158 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(34, 197, 94); |
159 | | - } |
160 | | - else if (inkColor == 3) |
161 | | - { // Blue |
162 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(59, 130, 246); |
163 | | - } |
164 | | - else if (inkColor == 4) |
165 | | - { // Yellow |
166 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(250, 204, 21); |
167 | | - } |
168 | | - else if (inkColor == 6) |
169 | | - { // Pink |
170 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(236, 72, 153); |
171 | | - } |
172 | | - else if (inkColor == 7) |
173 | | - { // Teal |
174 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(20, 184, 166); |
175 | | - } |
176 | | - else if (inkColor == 8) |
177 | | - { // Orange |
178 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(249, 115, 22); |
179 | | - } |
| 167 | + inkCanvas.DefaultDrawingAttributes.Color = inkColorLightThemeMapping[inkColor]; |
180 | 168 | } |
181 | 169 | else |
182 | 170 | { |
183 | | - if (inkColor == 1) |
184 | | - { // Red |
185 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(220, 38, 38); |
186 | | - } |
187 | | - else if (inkColor == 2) |
188 | | - { // Green |
189 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(22, 163, 74); |
190 | | - } |
191 | | - else if (inkColor == 3) |
192 | | - { // Blue |
193 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(37, 99, 235); |
194 | | - } |
195 | | - else if (inkColor == 4) |
196 | | - { // Yellow |
197 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(234, 179, 8); |
198 | | - } |
199 | | - else if (inkColor == 6) |
200 | | - { // Pink ( Purple ) |
201 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(147, 51, 234); |
202 | | - } |
203 | | - else if (inkColor == 7) |
204 | | - { // Teal |
205 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(13, 148, 136); |
206 | | - } |
207 | | - else if (inkColor == 8) |
208 | | - { // Orange |
209 | | - inkCanvas.DefaultDrawingAttributes.Color = Color.FromRgb(234, 88, 12); |
210 | | - } |
| 171 | + inkCanvas.DefaultDrawingAttributes.Color = inkColorDarkThemeMapping[inkColor]; |
211 | 172 | } |
212 | 173 | if (isUselightThemeColor) |
213 | 174 | { // 亮系 |
@@ -385,68 +346,76 @@ private void CheckColorTheme(bool changeColorTheme = false) |
385 | 346 |
|
386 | 347 | private void CheckLastColor(int inkColor) |
387 | 348 | { |
388 | | - if (currentMode == 0) |
| 349 | + StrokeCollection strokes = inkCanvas.GetSelectedStrokes(); |
| 350 | + if (strokes.Count > 0) |
389 | 351 | { |
390 | | - lastDesktopInkColor = inkColor; |
| 352 | + Color targetedColor = inkColorLightThemeMapping[inkColor]; |
| 353 | + if (!isUselightThemeColor) |
| 354 | + { |
| 355 | + inkCanvas.DefaultDrawingAttributes.Color = inkColorDarkThemeMapping[inkColor]; |
| 356 | + } |
| 357 | + foreach (Stroke stroke in strokes) |
| 358 | + { |
| 359 | + stroke.DrawingAttributes.Color = targetedColor; |
| 360 | + } |
391 | 361 | } |
392 | 362 | else |
393 | 363 | { |
394 | | - lastBoardInkColor = inkColor; |
| 364 | + if (currentMode == 0) |
| 365 | + { |
| 366 | + lastDesktopInkColor = inkColor; |
| 367 | + } |
| 368 | + else |
| 369 | + { |
| 370 | + lastBoardInkColor = inkColor; |
| 371 | + } |
| 372 | + ColorSwitchCheck(); |
395 | 373 | } |
396 | 374 | } |
397 | 375 |
|
398 | 376 | private void BtnColorBlack_Click(object sender, RoutedEventArgs e) |
399 | 377 | { |
400 | 378 | CheckLastColor(0); |
401 | | - ColorSwitchCheck(); |
402 | 379 | } |
403 | 380 |
|
404 | 381 | private void BtnColorRed_Click(object sender, RoutedEventArgs e) |
405 | 382 | { |
406 | 383 | CheckLastColor(1); |
407 | | - ColorSwitchCheck(); |
408 | 384 | } |
409 | 385 |
|
410 | 386 | private void BtnColorGreen_Click(object sender, RoutedEventArgs e) |
411 | 387 | { |
412 | 388 | CheckLastColor(2); |
413 | | - ColorSwitchCheck(); |
414 | 389 | } |
415 | 390 |
|
416 | 391 | private void BtnColorBlue_Click(object sender, RoutedEventArgs e) |
417 | 392 | { |
418 | 393 | CheckLastColor(3); |
419 | | - ColorSwitchCheck(); |
420 | 394 | } |
421 | 395 |
|
422 | 396 | private void BtnColorYellow_Click(object sender, RoutedEventArgs e) |
423 | 397 | { |
424 | 398 | CheckLastColor(4); |
425 | | - ColorSwitchCheck(); |
426 | 399 | } |
427 | 400 |
|
428 | 401 | private void BtnColorWhite_Click(object sender, RoutedEventArgs e) |
429 | 402 | { |
430 | 403 | CheckLastColor(5); |
431 | | - ColorSwitchCheck(); |
432 | 404 | } |
433 | 405 |
|
434 | 406 | private void BtnColorPink_Click(object sender, RoutedEventArgs e) |
435 | 407 | { |
436 | 408 | CheckLastColor(6); |
437 | | - ColorSwitchCheck(); |
438 | 409 | } |
439 | 410 |
|
440 | 411 | private void BtnColorTeal_Click(object sender, RoutedEventArgs e) |
441 | 412 | { |
442 | 413 | CheckLastColor(7); |
443 | | - ColorSwitchCheck(); |
444 | 414 | } |
445 | 415 |
|
446 | 416 | private void BtnColorOrange_Click(object sender, RoutedEventArgs e) |
447 | 417 | { |
448 | 418 | CheckLastColor(8); |
449 | | - ColorSwitchCheck(); |
450 | 419 | } |
451 | 420 |
|
452 | 421 | private Color StringToColor(string colorStr) |
|
0 commit comments