首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏林德熙的博客

    WPF 在 DrawingContext 的 push 如何使用

    本文告诉大家如何使用 DrawingContext 变换,修改画出的内容。 下面来把上面的 DrawingVisual 画出来 protected override void OnRender(DrawingContext drawingContext) { drawingContext.DrawDrawing(DrawingVisual.Drawing); base.OnRender(drawingContext 如对 DrawingVisual 进行变换的代码 protected override void OnRender(DrawingContext drawingContext) ); 和使用下面代码画出来的图形不透明度相同 drawingContext.PushOpacity(0.09); drawingContext.DrawDrawing

    2.1K10发布于 2018-09-18
  • 来自专栏林德熙的博客

    WPF 在 DrawingContext 的 push 如何使用

    本文告诉大家如何使用 DrawingContext 变换,修改画出的内容。 下面来把上面的 DrawingVisual 画出来 protected override void OnRender(DrawingContext drawingContext) { drawingContext.DrawDrawing(DrawingVisual.Drawing); base.OnRender(drawingContext 如对 DrawingVisual 进行变换的代码 protected override void OnRender(DrawingContext drawingContext) ); 和使用下面代码画出来的图形不透明度相同 drawingContext.PushOpacity(0.09); drawingContext.DrawDrawing

    80220编辑于 2022-08-04
  • 来自专栏林德熙的博客

    WPF 通过 DrawingContext DrawImage 绘制图片

    本文告诉大家如何通过 DrawingContext 绘制图片,同时指定绘制图片在画布的某个区域和绘制出来的图片大小,如何裁剪图片 在 WPF 中可以使用 DrawingVisual 进行底层的绘制,底层的绘制的效率是比较高的 //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext

    1.4K20编辑于 2022-08-04
  • 来自专栏林德熙的博客

    WPF 通过 DrawingContext DrawImage 绘制图片 裁剪图片

    本文告诉大家如何通过 DrawingContext 绘制图片,同时指定绘制图片在画布的某个区域和绘制出来的图片大小,如何裁剪图片 在 WPF 中可以使用 DrawingVisual 进行底层的绘制,底层的绘制的效率是比较高的 //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext //application:,,,/1.jpg")); var drawingVisual = new DrawingVisual(); using (DrawingContext ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF-%E9%80%9A%E8%BF%87-DrawingContext-DrawImage

    3.2K20发布于 2019-03-13
  • 来自专栏Dotnet9

    WPF 水印装饰器

    drawingContext) { Rect rect = new Rect(this.AdornedElement.RenderSize); point = RotatePoint(0.5, 0.5, n, rt, rect, margin); DrawText(point.X, point.Y, halfWidth, drawingContext point = RotatePoint(2.5, 0.5, n, rt, rect, margin); DrawText(point.X, point.Y, halfWidth, drawingContext point = RotatePoint(4.5, 0.5, n, rt, rect, margin); DrawText(point.X, point.Y, halfWidth, drawingContext drawingContext, string text) { int fontSize = 20; SolidColorBrush colorBrush

    66310发布于 2021-12-01
  • 来自专栏林德熙的博客

    WPF 从 DrawingVisual 转 BitmapImage 图片

    DrawingVisual 在里面绘制一些内容 DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); // 画出界面 drawingContext.Close(); 如在里面写文字 DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); drawingContext.DrawText( bitmapImage.EndInit(); } 通过这个方法就可以将 DrawingVisual 转 BitmapImage 虽然这个方法的速度比较慢 WPF 通过 DrawingContext

    67110编辑于 2022-08-04
  • 来自专栏林德熙的博客

    WPF 使用 VisualBrush 在 4k 加 200 DPI 设备上某些文本不渲染看不见问题

    如上文所述,这是因为 DrawingContext 对象是从 DrawingVisual 里面获取的,而 DrawingVisual 的 RenderOpen 返回的是一个带 RenderData 收集器的 DrawingContext 对象,也就是说此对象还远远不是最终被执行 DirectX 渲染的对象,仅仅是收集绘制内容,放入到 RenderData 里面。 DrawLine(drawingContext); // 绘制文本 DrawGlyphRun(drawingContext); = dv.Open(); // 绘制点 DrawPoints(drawingContext); // 绘制线 DrawLine(drawingContext); // 绘制文本 DrawGlyphRun(drawingContext);

    1.3K20发布于 2021-11-15
  • 来自专栏林德熙的博客

    WPF 更改 DrawingVisual 的 RenderOpen 用到的对象的内容将持续影响渲染效果

    在 WPF 里面,可以通过 DrawingVisual 来进行使用底层的绘制方法,此方法需要调用 DrawingVisual 的 RenderOpen 拿到 DrawingContext 类型的对象, 我的文本排版才能的是将文本转换为 Geometry 对象,接着在 DrawingContext 里面绘制出来。 如基础的知识,在 DrawingContext 里面如果想要在指定的地方绘制某个内容,可以采用的方法是调用 PushTransform 方法,设置当前绘制的变换,也就包括了设置当前绘制在哪,如下面代码 (translateTransform); drawingContext.DrawGeometry(Brushes.Red, null, rectangleGeometry ); drawingContext.Pop(); } } 此时的 TranslateTransform

    1.4K30编辑于 2021-12-23
  • 来自专栏小菜与老鸟

    p5js隐藏大佬,你知道是谁么?

    这个大佬就是drawingContext,也就是绘画的上下文。 p5js-drawingContext官方文档[2] 就 '2d' 模式而言,drawingContext是CanvasRenderingContext2D类的实例,CanvasRenderingContext2D = 100 drawingContext.shadowColor = color(0) ellipse(mouseX, mouseY, 200, 200); } 阴影的偏移量 我们可以通过 drawingContext.shadowOffsetX = 50 drawingContext.shadowOffsetY = 50 clip-遮罩 function setup() { createCanvas 参考资料 [1] p5js的官方 api 文档: https://p5js.org/reference/ [2] p5js-drawingContext官方文档: https://p5js.org/reference

    1.6K30发布于 2021-09-24
  • 来自专栏林德熙的博客

    WPF 如何画出1像素的线

    如果自己创建一个控件,那么直接使用 dc.DrawLine 得到不是清晰的 创建一个类自定义控件,添加下面的代码画出线 protected override void OnRender(DrawingContext summary> /// Render callback. /// protected override void OnRender(DrawingContext drawingContext) { Pen pen = GetPen(); drawingContext.DrawRoundedRectangle } 下面代码是我复制他的,但是自己的控件画出来在放大时,线模糊,所以直接复制是无法做到wr的矩形那样 protected override void OnRender(DrawingContext 本文使用的方法很简单,第一步 复制方法到一个静态类 public static void DrawSnappedLinesBetweenPoints(this DrawingContext dc

    52310编辑于 2022-08-04
  • 来自专栏林德熙的博客

    wpf 如何使用 Magick.NET 播放 gif 图片 安装 Magick.NET解析 gif播放 gif

    = drawing.RenderOpen()) { drawingContext.DrawImage (image, new Rect(0, 0, width, height)); drawingContext.DrawImage(t.ToBitmapSource set => SetValue(FileProperty, value); } protected override void OnRender(DrawingContext drawingContext) { drawingContext.DrawDrawing(drawing.Drawing); base.OnRender (drawingContext); } private DrawingVisual drawing = new DrawingVisual(); private

    1.4K20发布于 2018-09-18
  • 来自专栏林德熙的博客

    WPF 文字描边

    假设需要画出的文字是 欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客 protected override void OnRender(DrawingContext drawingContext) { var str = "欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客"; base.OnRender(drawingContext); } 通过字符串创建 FormattedText 这里需要传入很多参数 var <local:CureekaMasar></local:CureekaMasar> 所有代码请看下面 protected override void OnRender(DrawingContext drawingContext) { var str = "欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客";

    78130编辑于 2022-08-04
  • 来自专栏林德熙的博客

    WPF 从 DrawingVisual 转 BitmapImage 图片

    DrawingVisual 在里面绘制一些内容 DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); // 画出界面 drawingContext.Close(); 如在里面写文字 DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); drawingContext.DrawText( bitmapImage.EndInit(); } 通过这个方法就可以将 DrawingVisual 转 BitmapImage 虽然这个方法的速度比较慢 WPF 通过 DrawingContext

    1.4K20发布于 2019-03-13
  • 来自专栏dino.c的专栏

    [WPF] 如何实现文字描边

    使用 DrawingContext WPF 中的 DrawingContext 是一个基础的绘图对象,用于绘制各种图形,它的一个最简单的使用方式是重载 UIElement 的 OnRender 方法,在这个方法中绘制 除了正方形,DrawingContext 还提供了 DrawEllipse、DrawImage、DrawLine 等函数,用于画圆形、图像、线条等,也可以用 DrawText 函数画出文字。 在上面的代码中我们已经将文字转为一个 Geometry,接下来直接调用 DrawGeometry 并加上边框: protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); var geometry = CreateTextGeometry(); // 类 (System.Windows.Media) UIElement.OnRender(DrawingContext) 方法 (System.Windows) 7.

    1.6K30编辑于 2022-05-07
  • 来自专栏林德熙的博客

    WPF 文字描边

    假设需要画出的文字是 欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客 protected override void OnRender(DrawingContext drawingContext) { var str = "欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客"; base.OnRender(drawingContext); } 通过字符串创建 FormattedText 这里需要传入很多参数 var <local:CureekaMasar></local:CureekaMasar> 所有代码请看下面 protected override void OnRender(DrawingContext drawingContext) { var str = "欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客";

    1.3K20发布于 2019-03-13
  • 来自专栏林德熙的博客

    WPF 元素裁剪 Clip 属性

    SisdecereYipuVayderyecallMawqere() { } /// <inheritdoc /> protected override void OnRender(DrawingContext drawingContext) { drawingContext.DrawRectangle(Brushes.Black,null,new Rect(10,10,100,100 WPF 通过 DrawingContext DrawImage 绘制图片 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF-%

    2K20发布于 2019-03-13
  • 来自专栏林德熙的博客

    wpf 如何使用 Magick.NET 播放 gif 图片

    = drawing.RenderOpen()) { drawingContext.DrawImage (image, new Rect(0, 0, width, height)); drawingContext.DrawImage(t.ToBitmapSource set => SetValue(FileProperty, value); } protected override void OnRender(DrawingContext drawingContext) { drawingContext.DrawDrawing(drawing.Drawing); base.OnRender (drawingContext); } private DrawingVisual drawing = new DrawingVisual(); private

    1.1K30发布于 2019-03-13
  • 来自专栏我的WPF笔记

    记一次自定义基因分类图实现(一)

    drawingContext)  {      drawingContext.DrawRectangle(Background, null, new Rect(0, 0, ActualWidth, ActualHeight (drawLines, ref yIndex, ref y, ref currentLevel, ref verStartPoint, ref verEndPoint);      DrawLine(drawingContext , drawLines, true);      base.OnRender(drawingContext);  }重新OnRender主要目的是将线画出来,并且根据方向来实现分别生成要画的线序列。 drawingContext, List<DrawLineModel> drawLines, int level) {     var allLevelData = drawLines.FindAll drawingContext, List<DrawLineModel> drawLines, int level) {     var allLevelData = drawLines.FindAll

    22110编辑于 2025-04-19
  • 来自专栏林德熙的博客

    WPF 如何画出1像素的线

    如果自己创建一个控件,那么直接使用 dc.DrawLine 得到不是清晰的 创建一个类自定义控件,添加下面的代码画出线 protected override void OnRender(DrawingContext summary> /// Render callback. /// protected override void OnRender(DrawingContext drawingContext) { Pen pen = GetPen(); drawingContext.DrawRoundedRectangle } 下面代码是我复制他的,但是自己的控件画出来在放大时,线模糊,所以直接复制是无法做到wr的矩形那样 protected override void OnRender(DrawingContext 本文使用的方法很简单,第一步 复制方法到一个静态类 public static void DrawSnappedLinesBetweenPoints(this DrawingContext dc

    1.3K10发布于 2018-09-19
  • 来自专栏喵叔's 专栏

    WPF中的一个bug造成CPU资源拉满

    Width = 1000; Height = 1000; } protected override void OnRender(DrawingContext drawingContext) { var pen = new Pen() { Brush = Brushes.Black }; var geometry = new LineGeometry(new Point(0, 0), new Point(500, 0)); drawingContext.DrawGeometry (Brushes.Beige, pen, geometry); base.OnRender(drawingContext); } } 将以上的Test类放到界面里面

    59630编辑于 2022-01-04
领券