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;

  • 相关阅读:
    VS快捷键
    eclipse快捷键(shift+ctrl+l能出来所有的快捷键)
    永远不要觉得自己代码有多6
    winform中使用webBrowser时如何与JS交互
    HTML CSS
    HTTP 协议 session cookie
    [Python3]Python官方文档-Python Manuals
    [python3]PyCharm编辑器
    Loadrunner上传文件与下载文件脚本
    Spotlight安装
  • 原文地址:https://www.cnblogs.com/shenchao/p/5488637.html
Copyright © 2011-2022 走看看