问题标签 [glyphrun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
290 浏览

wpf - GlyphRun 中的 renderingEmSize 参数指定了什么?

我正在尝试制作一个GlyphRun实例以在GlyphRunDrawing中使用,但是文档太糟糕了,以至于几乎可笑。例如,参数renderingEmSize描述如下:

只是……哇。

我知道字体中的“em”是什么(em dash 的宽度),但我不知道网格单位是什么。设备像素?设备独立像素?

0 投票
1 回答
1717 浏览

c# - 如何在 Glyphs 中实现字符连字?

我的问题是关于Glyphs中的连字msdn中有这个例子:

我找不到任何详细的文档来解释 Indices 属性中发生的事情。当我尝试使用波斯字符创建字形时,可以说“من”,我得到

代替

所以问题是:如何在 Glyphs 中实现字符连字?
顺便说一句,我知道我可以使用FormattedTextTextFormatter.FormatLine(...)方法,但我想知道在GlyphsGlyphRun中是否有任何方法可以做到这一点。

0 投票
0 回答
466 浏览

c# - 鉴于 GlyphRun 类可用,WPF Glyphs 类存在的原因

我一直在使用GlyphRun该类在 Canvas 面板上进行文本的低级显示。我最近才知道这Glyphs门课。我不明白 Glyphs 类存在的原因,因为 GlyphRun 类已经可用。

我没有尝试使用 Glyphs 类。我一直无法找到非 XAML 示例,但这确实不是我没有尝试过的原因。即使我确实得到了一个基于 Glyphs 的示例,我也不了解它在 GlyphRun 上的实用性,基于 MSDN 中的极少文档。

C#、Windows 7、WPF、任何 .NET 版本。

0 投票
0 回答
177 浏览

objective-c - CTLineGetGlyphRuns NSAttributedString 的奇怪行为

我有一个字符串,假设"Hello"我需要在前面和末尾追加,","所以字符串看起来像这样:",Hello,"现在我希望文本是白色的,而“,”是不同的颜色。所以我做这样的事情:

后来我用CTFrameSetterRed,CGContextRef

在这个",Hello,"例子中,glyphCount 返回了3HOWEVER!当我将代码更改为:

(现在整个消息“,你好”是白色的,这是唯一的变化) glyphCount 返回1 为什么会这样以及如何避免它?这看起来相当奇怪。

0 投票
0 回答
143 浏览

wpf - 在 WPF 中精确定位字形文本

我正在为 Windows 编写化学分子编辑器。由于它必须在 Word 加载项中使用,因此我仅限于使用 WPF 来呈现结构。这工作得很好,除了一个小小的琐碎点。

带有未对齐标签的样本分子

我使用 GlyphRuns 来渲染原子标签,它们总是稍微向右移动。如果您查看屏幕截图,您会看到有一个前导空格,尤其是 H2N 和 Hg 原子标签。为什么?当您获得字形运行的轮廓几何图形时,您会得到白色背景。

GlyphRun 类的文档记录很差,以至于我看不到要修改哪些属性才能将文本精确定位到我想要的位置。因此,任何尝试的建议都将受到欢迎。

更新:我被要求提供一个样本。代码很复杂,但不是无缘无故的,所以我将其删减以专注于要点:

0 投票
1 回答
158 浏览

wpf - GlyphRun 和光标的准确位置 (WPF)

我想在鼠标光标的位置绘制一个文本。因为我需要非常高的性能,所以我想使用GlyphRun。一切正常,但不幸的是我的文字略低于光标。

有人可以帮我修改这种方法以消除这种垂直偏移吗?

现在看起来像这样

我的期望(文字触及光标)

我的代码:

当然,这只是一个测试,实际上不会影响光标,但是指示的点和文本会比这个例子中的要多得多。

0 投票
1 回答
80 浏览

c# - 如何在 Glyphs.FontURI 属性中指定 TTC 字体索引?

我想在字形的 FontURI 属性中放置一个 TTC(True Type Collection)字体文件。我使用.Net5.0

我在旧的 silverlight 文档中找到了这个: https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/ms599247(v=vs.95)

FontUri 还支持 TTC(TrueType 集合)字体。您可以使用格式 collectionname.ttc#n 为集合中的特定字体偏移量编制索引,其中 n 是集合中的索引。如果您打算引用集合中的第一个字体,则可以省略“#0”。

但是在 net5.0 文档中,这一段不在文档中:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.documents.glyphs.fonturi?view=net-5.0

我尝试了 FontURI 中的 #1(用于 Cambria Math),但没有运气。 在此处输入图像描述

这是我尝试创建字形字体 URI 的代码:

有没有办法从 .net5 中的 TTC 文件渲染字形?

0 投票
1 回答
257 浏览

c# - 使用 WPF C# 显示大型文本文件

我正在尝试编写一个 WPF 应用程序来显示(可能)大型日志文件(50MB-2GB),以便它们更易于阅读。我尝试将一个 5 MB 的文件与 ~75k 行加载到一个带有 TextBlocks 的 GridView 中,但它真的很慢。我不需要任何编辑功能。

我遇到了 GlyphRun,但我不知道如何使用它们。我想我必须用日志文件每一行的 GlyphRun 填充画布或图像。谁能告诉我该怎么做?不幸的是,关于 GlyphRun 的文档不是很有帮助。