gpt4 book ai didi

c# - 在 avalon edit 中更改默认行高

转载 作者:行者123 更新时间:2023-11-30 13:48:34 26 4
gpt4 key购买 nike

我正在使用 avalon edit 编写一个自定义软件,我正在寻找一种方法来使行之间的空间(高度)更大。目前,每次用户结束写一行并想写另一行时,我都被迫添加一个空行。

我已经开始研究 TextView 类,其中似乎计算了 defaultLineHeight,但我唯一能够影响的是视觉插入符号的高度,而不是内容本身。

目前我正在考虑让每对线不可见,但我希望有一种更简单的方法来实现在线之间添加更多空间的简单操作。

这是我目前正在检查的 TextView 类中的方法。欢迎任何提示或提示。

void CalculateDefaultTextMetrics()
{
if (defaultTextMetricsValid)
{
return;
}

defaultTextMetricsValid = true;
if (formatter != null)
{
var textRunProperties = CreateGlobalTextRunProperties();
using (
var line = formatter.FormatLine(
new SimpleTextSource("x", textRunProperties),
0,
32000,
new VisualLineTextParagraphProperties { defaultTextRunProperties = textRunProperties },
null))
{
wideSpaceWidth = Math.Max(1, line.WidthIncludingTrailingWhitespace);
defaultBaseline = Math.Max(1, line.Baseline);
defaultLineHeight = Math.Max(1, line.Height);
}
}
else
{
wideSpaceWidth = FontSize / 2;
defaultBaseline = FontSize;
**defaultLineHeight = FontSize + 3; // bigger value only affects caret height :(**
}

// Update heightTree.DefaultLineHeight, if a document is loaded.
if (heightTree != null)
{
heightTree.DefaultLineHeight = defaultLineHeight;
}
}

谢谢

最佳答案

DefaultLineHeight 是默认字体中的行高,用作每行高度的初始假设。 (例如计算滚动条位置)

只要实际测量了一条线(TextView.BuildVisualLine),测量的高度就会存储在高度树中,覆盖默认高度。这是因为自动换行(或改变字体大小的行转换器)会导致每行具有不同的高度。

目前不真正支持行间距。如果你想添加它,你可以尝试改变 VisualLine 的高度计算,例如通过更改 VisualLine.SetTextLines()

关于c# - 在 avalon edit 中更改默认行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com