zoukankan      html  css  js  c++  java
  • C#:WPF绘制问题

    1、问题描述:切换画笔后,鼠标呈现画笔,但绘制界面需要点击后才能绘制,体验比较差

      注:如果将切换为画笔或橡皮擦的功能放在二级菜单中则无次问题

    解决方法(大体如此):

      1)在第三方中,先创建完绘制画面和显示的工具窗体,关联两个窗体 +【加载显示窗体,再隐藏】

      2)选择绘制时,最顶层显示出绘制界面,设置焦点,再最顶层显示出工具菜单,设置焦点。

      参考代码:

                            //绘制界面
                            this.Show();
                            this.InkDraw.UseCustomCursor = true;
                            this.InkDraw.Cursor = System.Windows.Input.Cursors.Pen;
                            this.InkDraw.EditingMode = InkCanvasEditingMode.Ink;
                            this.InkDraw.DefaultDrawingAttributes.Color = System.Windows.Media.Color.FromArgb(args.DrawColor.A,
                            args.DrawColor.R, args.DrawColor.G, args.DrawColor.B);
                            this.Focus();       
    
    
        
                        //子工具条显示
                        frmBoardTools.Show();
                        frmBoardTools.Focus();
                     
    View Code

     2、绘制窗体圆角

            /// <summary>
            /// 窗体圆角
          /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Onsizechanged(object sender, SizeChangedEventArgs e)
            {
                System.Windows.Rect rect = new System.Windows.Rect(e.NewSize);
                RectangleGeometry gm = new RectangleGeometry(rect, 13, 13);//(rect, 28, 28);
                ((UIElement)sender).Clip = gm;
            }
    View Code

     3、InkCanvas 的strokes.Clear()后,不隐藏内容为空,隐藏后再显示,先闪烁原内容后,InkCanvas内容再显示为空!

    解决方法:不适用隐藏、显示,而是Opacity = 0 ;和 Opacity = 1;

  • 相关阅读:
    idea配置web项目启动的详细说明
    mybatis如何防止sql注入(1)
    SQL基础(3)
    SQL基础(2)
    SQL基础(1)
    SpringMVC—对Ajax的处理(含 JSON 类型)(3)
    SpringMVC 之URL请求到Action的映射(1)
    Oracle 多表查询(2)
    Oracle 多表查询(1)
    mysql查询最近30天、7天、每天、昨天、上个月的记录
  • 原文地址:https://www.cnblogs.com/shenchao/p/5488637.html
Copyright © 2011-2022 走看看