首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在WPF中使用SkiaSharp模糊文本

,SkiaSharp是一个跨平台的2D图形库,可以在WPF应用程序中使用它来实现文本模糊效果。

SkiaSharp是由Google开发的Skia图形库的.NET绑定版本,它提供了一套强大的API,用于在各种平台上绘制2D图形。在WPF中使用SkiaSharp可以实现更高级的图形效果,包括模糊文本。

要在WPF中使用SkiaSharp模糊文本,首先需要在项目中引入SkiaSharp库。可以通过NuGet包管理器来安装SkiaSharp和SkiaSharp.Views.WPF。

安装完成后,可以在XAML文件中添加一个SkiaSharp的视图控件,例如SkiaSharp.Views.WPF.SKElement。然后,在代码中使用SkiaSharp的API来绘制文本并应用模糊效果。

以下是一个示例代码:

代码语言:csharp
复制
using SkiaSharp;
using SkiaSharp.Views.Desktop;
using System.Windows;

namespace WpfApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void OnPaintSurface(object sender, SKPaintSurfaceEventArgs e)
        {
            SKSurface surface = e.Surface;
            SKCanvas canvas = surface.Canvas;

            // 清空画布
            canvas.Clear(SKColors.White);

            // 创建文本画笔
            SKPaint textPaint = new SKPaint
            {
                Color = SKColors.Black,
                TextSize = 48,
                IsAntialias = true,
                IsStroke = false,
                TextAlign = SKTextAlign.Center
            };

            // 绘制模糊文本
            canvas.DrawText("Hello SkiaSharp", e.Info.Width / 2, e.Info.Height / 2, textPaint);
        }
    }
}

在XAML文件中,将SKElement控件添加到窗口中,并将其PaintSurface事件与OnPaintSurface方法关联:

代码语言:xaml
复制
<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:skia="clr-namespace:SkiaSharp.Views.WPF;assembly=SkiaSharp.Views.WPF"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <skia:SKElement PaintSurface="OnPaintSurface" />
    </Grid>
</Window>

这样,在WPF应用程序中就可以使用SkiaSharp来实现模糊文本效果了。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 简单聊聊如何使用 DrawGlyphRun 绘制文本

WPF 里面,提供的使用底层的方法绘制文本是通过 DrawGlyphRun 的方式,此方法适合用在需要对文本进行精细控制的定制化控件上。...此方法特别底层而让调用方法比较复杂,本文告诉大家一些简单的使用方法 本文也属于 WPF 渲染系列博客,更多渲染相关博客请看 渲染相关 开始之前,我是来劝退的,如果没有特别的需求,还是不推荐使用 DrawGlyphRun...字号其实是一个上层的概念,而在 GlyphRun 需要使用底层的文本渲染概念,也就是字符的 AdvanceWidth 的值。... WPF 源代码里面,可以看到底层的 Fallback 字体是 #GLOBAL USER INTERFACE 这个特殊的字体,为了保持和 TextBlock 差不多的逻辑,可以使用如下方法作为字体回滚...,期望找不到字体的时候使用自己的字体,就可以使用上面提供的回滚策略代码,使用方法如下 if (typeface.TryGetGlyphTypeface(out var glyph

1.5K10

WPF 实现融合效果

之前的一篇文章,我使用 Win2D 实现了融合效果,效果如下: 不过 Win2D 不适用于 WPF WPF 可以使用 BlurEffect 配合自定义 Effect 实现类似的效果。...自定义 Effect Win2D ,实现融合效果的步骤是先使用 GaussianBlurEffect 两个元素间产生粘连在一起的半透明像素,再用 ColorMatrixEffect 加强对比对,... WPF 我们可以直接使用自带的 BlurEffect 实现高斯模糊,效果如下: 接下来需要加强对比度。...WPF 没有 ColorMatrixEffect 的替代品,不过我们可以使用 HLSL(高级着色器语言)编写 PixelShader 并生成自定义的 WPF Effect。...编写 PixelShader 可以使用 Shazzam Shader Editor, walterlv 有一篇关于如何使用这款编辑器的教程: WPF 像素着色器入门:使用 Shazzam Shader

1.2K20

dotnet 修复 Linux 上使用 SkiaSharp 提示找不到 libSkiaSharp 库

本文告诉大家如何简单修复 Linux 上使用 SkiaSharp 提示找不到 libSkiaSharp 库 我的应用在 Windows 上跑的好好的,放在 Linux 上一运行就炸掉了,异常内容如下...="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.0" /> 以上的方法经过我 WSL 的 Ubuntu...上测试 本文的例子放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文的代码...https://gitee.com/lindexi/lindexi_gd.git git pull origin 668b2acf5749a1e190733882ae49ad105877cb55 以上使用的是.../KebeninegeeWaljelluhi 文件夹 更多请看 Docker环境下使用SkiaSharp的2种方式 - 从零开始-DotNET技术 - 博客园

3.9K20

EF,如何实现模糊查询?

热门关键词 Java编程、C#/.NET编程、Python编程 Web前端、SQL数据库 新手编程1001问(7) EF,如何使用Lambda表达式实现模糊查询?...【摘要】我们知道sql,可以通过like方法实现模糊查询。而在EF,我们通常使用Lambda表达式实现各种复杂的数据查询,那么,类似于sql的like方法如何实现呢?...EF,我们通常使用Contains()方法来实现模糊查询。...的值是否包含关键字keywords,这样的模糊查询就可以写成如下的样子: ?...所以,如果我们遇上其他数据类型的模糊查询,就需要先将它转换为字符串类型,再使用Contains()方法。 此外,我们使用Contains()方法时,一定要注意null值的判断。

4.2K40

dotnet 修复 Uno 中文乱码

这是一个历史问题,使用 Uno 展示中文的时候,如果设置 Uno 的底层使用 Skia 系进行渲染,那么将会因为中文字体问题,导致渲染出现乱码。...此问题已被我修复,最佳解法是更新到最新版本 在上一篇博客 使用 Uno Islands 现有 WPF 里面嵌入 Uno 框架 我 WPF 里面嵌入了 Uno 应用,但是我发现 TextBlock 无法正常输入中文...解决 Skia 因为找不到字体而绘制不出中文字符 所描述,这是因为 SkiaSharp 里面使用平台调用的时候,传入的中文字体名采用的是 C# 默认的 UTF16 编码。...此问题也有伙伴反馈给 Uno 官方,请看 Uno with Wpf Chinese code display messy code · Issue #6973 · unoplatform/uno 而在...\TestUnoIslands\TestUnoIslands.projitems" Label="Shared" /> 更新完成 Uno 和 SkiaSharp 之后,还需要给定一个中文字体名

51140

WindowsXamlHost: WPF使用 UWP 控件库的控件

WindowsXamlHost: WPF使用 UWP 的控件(Windows Community Toolkit) 一文,我们说到了 WPF 引入简单的 UWP 控件以及相关的注意事项...image.png ▲ 创建一个 UWP 控件库 image.png ▲ 选择 SDK 版本 对 WPF 项目的准备工作 你依然需要阅读 WindowsXamlHost: WPF使用...image.png ▲ 生成的文件已复制到 WPF 目录下 WPF 项目中间接引用 UWP 控件库 现在, WPF 项目中开启所有文件夹的显示,然后将 UWP 项目中生成的文件添加到 WPF...项目中: image.png ▲ WPF 的项目中添加 UWP 的控件库 为了能够每次编译 WPF 项目的时候确保 UWP 项目先编译,需要为 WPF 项目设置项目依赖。... WPF 项目中使用 UWP 控件库的控件 这时, WindowsXamlHost 中就可以添加 UWP 控件库的 MainPage 了。

5.8K20

WPF 使用 Skia 绘制 WriteableBitmap 图片

本文告诉大家如何在 WPF使用 SkiaSharp 调用 Skia 这个全平台底层渲染框架,使用绘制命令 WriteableBitmap 图片上绘制内容 谷歌提出了 Skia 全平台渲染框架,这是一个很底层的框架...那么如何在 WPF 使用 SkiaSharp 绘制出 WriteableBitmap WPF使用?...Skia绘制" Click="Button_OnClick"> WPF 里面创建一个 WriteableBitmap 可以使用如下代码 private...Skia 里面和 D2D 一样有 Surface 的概念,也就是可以将绘制命令输入到 Skia 绘制到 Surface 上,而绘制内容将会作为像素数组放在传入的数组里面 小伙伴是否还记得 WPF 使用不安全代码快速从数组转...本文的代码放在 github 欢迎小伙伴访问 更多使用方法还需要小伙伴自己去玩 当前可以使用 SkiaSharp 支持 Window 端和 Linux 端以及 macOS 和 iOS 和安卓端的绘制,其中

2.2K20

探索Avalonia:C#跨平台UI框架的力量

当开发人员使用 XAML 描述用户界面时,Avalonia 将这些 XAML 文件解析成 UI 元素树,并使用 SkiaSharp 来将这些 UI 元素绘制到屏幕上。...SkiaSharp 提供了丰富的绘图 API,能够实现高性能的图形渲染,同时具有跨平台的特性,使得 Avalonia 能够不同操作系统上实现一致的用户界面。...性能优化:Avalonia 使用 SkiaSharp 作为其渲染引擎,能够实现高性能的图形渲染,并在不同操作系统上实现一致的用户界面。...开源社区:Avalonia 是一个活跃的开源项目,拥有一个庞大的开发社区,使得开发人员可以社区获取支持、分享经验,并参与到框架的开发来。...Studio,点击扩展菜单上的管理扩展 然后搜索框,输入"Avalonia" 点击下载并按照说明进行操作(您需要关闭Visual Studio以完成安装) 打开Visual Studio,创建

45610

ASP.NET Core使用SkiaSharp实现验证码

前言 本文并没有实现一个完成的验证码样例,只是提供了在当前.NET Core 2.0下使用Drawing API的另一种思路,并以简单Demo的形式展示出来。...谷歌Chrome浏览器、Chrome OS、安卓、火狐浏览器、火狐操作系统以及其它许多产品都使用它作为图形引擎。 Skia由谷歌出资管理,任何人都可基于BSD免费软件许可证使用Skia。...SkiaSharp SkiaSharp是由Mono发起,基于谷歌的Skia图形库,实现的一个跨平台的2D图形.NET API绑定。...Windows Classic Desktop (Windows.Forms / WPF) Windows UWP (Desktop / Mobile / Xbox / HoloLens) 使用SkiaSharp...前使用SkiaSharp实现文本绘图功能,代码如下: internal static byte[] GetCaptcha(string captchaText) {

2.7K20

WPF DrawingContext 的 push 如何使用

简单的方法就是使用 PushTransform 方法,那么如何使用这个方法就是本文要告诉大家的。...先写一个简单的 OnRender ,创建一个类 GearcawralSarBule 继承 FrameworkElement 就可以重写 OnRender 方法,为了让WPF调用 OnRender 方法就需要把...如果有玩过 ps 就知道, ps 有图层,使用 DrawingContext 的 push 方法就是创建一个图层,而且做的变换都是对这个图层做变换,使用 push 创建图层之后需要使用 pop 把图层画进去...push 需要在画完使用 pop ,不然会出现下面继续对 DrawingVisual 进行画的时候就会发现还是原先的图层 除了 PushTransform 方法还有很多 push 方法,如 PushClip...drawingContext.PushOpacity(0.09); drawingContext.DrawDrawing(DrawingVisual.Drawing); 还有一个 PushGuidelineSet 参见:WPF

1.6K10

WPF DrawingContext 的 push 如何使用

简单的方法就是使用 PushTransform 方法,那么如何使用这个方法就是本文要告诉大家的。...先写一个简单的 OnRender ,创建一个类 GearcawralSarBule 继承 FrameworkElement 就可以重写 OnRender 方法,为了让WPF调用 OnRender 方法就需要把...如果有玩过 ps 就知道, ps 有图层,使用 DrawingContext 的 push 方法就是创建一个图层,而且做的变换都是对这个图层做变换,使用 push 创建图层之后需要使用 pop 把图层画进去...push 需要在画完使用 pop ,不然会出现下面继续对 DrawingVisual 进行画的时候就会发现还是原先的图层 除了 PushTransform 方法还有很多 push 方法,如 PushClip...drawingContext.PushOpacity(0.09); drawingContext.DrawDrawing(DrawingVisual.Drawing); 还有一个 PushGuidelineSet 参见:WPF

41420

.NET Core使用SkiaSharp快速生成二维码( 真正跨平台方案)

前言 .NET 6之前我们一直是使用QRCoder来生成二维码(QRCoder是一个非常强大的生成二维码的组件,用到了System.Drawing.Common 包),然后从.NET 6开始,当为非...libgdiplus 还具有许多用于图像处理和文本呈现的外部依赖项,例如 cairo、pango 和其他本机库。这些依赖项使得维护和交付组件更具挑战性。...官方建议 非 Windows 环境,推荐使用 SkiaSharp 和 ImageSharp 等库来完成跨平台的图像处理操作。这些库提供了更全面和稳定的功能支持,适用于大多数图形操作需求。...(WASM) Uno Platform (iOS / macOS / Android / WebAssembly) 这些平台可以使用 SkiaSharp 来进行跨平台的图形渲染和绘制操作。...使用SkiaSharp快速生成二维码 1、安装SkiaSharp.QrCode库 使用SkiaSharp生成二维码的QR码生成器(无需使用System.Drawing)。

95530

WPF 使用 Skia 解析绘制 SVG 图片

本文告诉大家如何在 WPF 里面,使用 Skia 解析绘制 SVG 图片。...本文也适合控制台使用 SkiaSharp 解析绘制 SVG 图片,本文的 WPF 部分只是 Skia 绘制完成之后,将 Skia 的内容绘制到 WPF 的 WriteableBitmap 图片,从而在界面显示...然而从 2011 开始,就有开发者 Google 的论坛里问大佬们,是否 Skia 可以自己带上 SVG 的解析,支持传入 SVG 作为图片进行绘制。...另一个库是 Svg.Skia 库,这是给 Skia 专用的库 接下来咱将使用这个 Svg.Skia 库, WPF 应用里,加载 SVG 文件,使用 Skia 渲染 按照惯例的第一步就是安装 NuGet...参数基本上就是约定了像素数据的表示和透明度支持 拿到 SKBitmap 对象,再根据 WPF 使用 Skia 绘制 WriteableBitmap 图片 提供的方法进行绘制 var writeableBitmap

1.6K30

【DB笔试面试572】Oracle模糊查询可以使用索引吗?

♣ 题目部分 Oracle模糊查询可以使用索引吗?...② 模糊查询形如“WHERE COL_NAME LIKE '%ABC';”不能使用索引,但是可以通过REVERSE函数来创建函数索引才能使用到索引。...③ 模糊查询形如“WHERE COL_NAME LIKE '%ABC%';”不能使用索引,但是,如果所查询的字符串有一定的规律的的话,那么还是可以使用到索引的,分以下几种情况: a....如果字符串ABC原字符串位置不固定,那么可以通过改写SQL进行优化。改写的方法主要是通过先使用子查询查询出需要的字段,然后在外层嵌套,这样就可以使用到索引了。...'AA%') filter(REVERSE(SUBSTR("TABLE_NAME",1,LENGTH("TABLE_NAME")-4)) LIKE 'AA%') --如果字符串ABC原字符串位置不固定

9.7K20

FluentValidationC# WPF的应用

其实它也可以用于WPF属性验证,本文主要也是讲解该组件WPF使用,FluentValidation官网是: https://fluentvalidation.net/ 。...本文需要实现的功能unsetunset 提供WPF界面输入验证,采用MVVM方式,需要以下功能: 能验证ViewModel定义的基本数据类型属性:int\string等; 能验证ViewModel定义的复杂属性...创建工程、引入库 创建.NET WPF模板解决方案(.Net Framework模板也行)WpfFluentValidation,引入Nuget包FluentValidation(属性验证使用)和Prism.Wpf...普通类 - Student 此类用作ViewModel的对象属性使用,学生类包含3个属性:名字、年龄、邮政编码。...;2.数字类型请填写数字;3.日志类型请填写日期类型"); } } 这里写的简单了点: 文本数据类型,值不能为空; 数字数据类型,必须是double类型; 日期类型,必须能使用DateTime

12610

.NET Core 3.0WPF使用IOC图文教程

我们都知道.NET Core 3.0已经发布了第六个预览版,我们也知道.NET Core 3.0现在已经支持创建WPF项目了,刚好今天写一个代码生成器的客户端的时候用到了WPF,所以就把WPF创建以及使用...0 Error(s) Time Elapsed 00:00:01.63 我们想要实现的是引导应用程序并在MainWindow的构造函数中注入一个服务,该服务将被调用以便在应用程序的主窗口上显示一些文本...StoneGenerate.Core.csproj" /> 创建一个ITextService接口服务,这个接口将由依赖注入容器注入到MainWindow类中进行使用...App.xaml.cs文件配置我们的IOC容器,并入住我们的服务,相信做过.NET Core项目的你,对下面的代码应该都非常的熟悉,这里就不过多的解释了,省的浪费大家的宝贵时间。...Application.Resources> 接下来我们修改一下MainWindow的xaml代码以便来显示我们的文本信息

80730
领券