gpt4 book ai didi

wpf - 适合特定宽度的字符串长度

转载 作者:行者123 更新时间:2023-12-02 09:16:00 25 4
gpt4 key购买 nike

我确信我错过了一些明显的东西,我有一个我打算在其中绘制文本的区域。我知道它(区域)的高度和宽度。我想知道宽度可以容纳多少个字符/单词,最好是字符。第二个问题,如果该行太长,我想绘制第二条线,所以我想我还需要获取文本的高度,包括它认为正确的垂直填充是什么?

我还想知道相反的情况,即特定宽度可以容纳多少个字符。

我认为 WPF 不受像素限制这一事实会对答案产生一些影响?

最终,我计划将文本包裹在文本中嵌入的不规则形状图像周围。

任何指向正确方向的指针都会很棒。

谢谢

最佳答案

对于 WPF,您可以使用 FormattedText类来计算给定文本字符串将使用多少宽度 - 这将取决于实际文本。

示例:

FormattedText formattedText = new FormattedText("Hello Stackoverflow", 
System.Globalization.CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface("Arial"), FontSize =14, Brushes.Black);
double textWidth = formattedText.Width;

获取给定宽度的子字符串(简化):

string text  = GetSubStringForWidth("Hello Stackoverflow", 55);
...
public string GetSubStringForWidth(string text, double width)
{
if (width <= 0)
return "";

int length = text.Length;
string testString;

while(true)//0 length string will always fit
{
testString = text.Substring(0, length);
FormattedText formattedText = new FormattedText(testString,
CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface("Arial"),
FontSize = 14,
Brushes.Black);
if(formattedText.Width <= width)
break;
else
length--;
}
return testString;
}

关于wpf - 适合特定宽度的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542717/

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