ToB企服应用市场:ToB评测及商务社交产业平台

标题: WPF 截图控件之移除控件(九)「仿微信」 [打印本页]

作者: 张国伟    时间: 2022-9-16 17:14
标题: WPF 截图控件之移除控件(九)「仿微信」
WPF 截图控件之移除控件(九)「仿微信」
WPF 截图控件之移除控件(九)「仿微信」
作者:WPFDevelopersOrg
原文链接:    https://github.com/WPFDevelopersOrg/WPFDevelopers

正文

一、前几篇实现了添加 方框椭圆箭头 此时需要删除所添加的操作和撤销上次操作。
1)选中操作
  1. //箭头
  2. controlArrow.MouseLeftButtonDown += (s, e) =>
  3.                 {
  4.                     SelectElement();
  5.                     frameworkElement = s as Control;
  6.                     frameworkElement.Opacity = .7;
  7.                 };
  8. //方框
  9. borderRectangle.MouseLeftButtonDown += (s, e) =>
  10.                         {
  11.                             SelectElement();
  12.                             frameworkElement = s as Border;
  13.                             frameworkElement.Opacity = .7;
  14.                         };
  15. //椭圆
  16. drawEllipse.MouseLeftButtonDown += (s, e) =>
  17.                         {
  18.                             SelectElement();
  19.                             frameworkElement = s as Ellipse;
  20.                             frameworkElement.Opacity = .7;
  21.                         };
  22. //文字
  23.                          textBorder.PreviewMouseLeftButtonDown += (s, e) =>
  24.                     {
  25.                         _radioButtonText.IsChecked = true;
  26.                         _radioButtonText_Click(null,null);
  27.                         SelectElement();
  28.                         var border = s as Border;
  29.                         frameworkElement = border;
  30.                         frameworkElement.Opacity = .7;
  31.                         border.BorderThickness = new Thickness(1);
  32.                     };
  33. //画笔
  34.                      polyLine.MouseLeftButtonDown += (s, e) =>
  35.                     {
  36.                         _radioButtonInk.IsChecked = true;
  37.                         _radioButtonInk_Click(null, null);
  38.                         SelectElement();
  39.                         frameworkElement = s as Polyline;
  40.                         frameworkElement.Opacity = .7;
  41.                     };
  42. void SelectElement()
  43.         {
  44.             for (int i = 0; i < VisualTreeHelper.GetChildrenCount(_canvas); i++)
  45.             {
  46.                 var child = VisualTreeHelper.GetChild(_canvas, i);
  47.                 if (child is FrameworkElement frameworkElement && frameworkElement.Tag != null)
  48.                     if (frameworkElement.Tag.ToString() == _tag)
  49.                         frameworkElement.Opacity = 1;
  50.             }
  51.         }
复制代码
2)删除操作 按下Delete键删除。
  1. if (e.Key == Key.Delete)
  2.             {
  3.                 if (_canvas.Children.Count > 0)
  4.                     _canvas.Children.Remove(frameworkElement);
  5.             }
复制代码
3)撤销操作 按下Ctrl+Z 撤销上次操作。
  1. if (e.KeyStates == Keyboard.GetKeyStates(Key.Z) && Keyboard.Modifiers == ModifierKeys.Control)
  2.             {
  3.                 if (_canvas.Children.Count > 0)
  4.                     _canvas.Children.Remove(_canvas.Children[_canvas.Children.Count - 1]);
  5.             }
复制代码
完整代码如下

项目地址


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4