gpt4 book ai didi

text - 以编程方式测量 Silverlight 的文本字符串(以像素为单位)

转载 作者:行者123 更新时间:2023-12-03 01:29:49 26 4
gpt4 key购买 nike

在 WPF 中,System.Windows.Media 命名空间中有 FormattedText MSDN FormattedText我可以像这样使用:

private static Size GetTextSize(string txt, string font, int size, bool isBold)
{
Typeface tf = new Typeface(new System.Windows.Media.FontFamily(font),
FontStyles.Normal,
(isBold) ? FontWeights.Bold : FontWeights.Normal,
FontStretches.Normal);
FormattedText ft = new FormattedText(txt, new CultureInfo("en-us"), System.Windows.FlowDirection.LeftToRight, tf, (double)size, System.Windows.Media.Brushes.Black, null, TextFormattingMode.Display);
return new Size { Width = ft.WidthIncludingTrailingWhitespace, Height = ft.Height };
}

除了调用服务器之外,Silverlight 中是否有一个好的方法来获取以像素为单位的宽度(目前高度并不重要)?

最佳答案

我见过的一种方法(可能不适用于您的特定实例)是将文本放入无样式的 TextBlock 中,然后获取该控件的宽度,如下所示:

private double GetTextWidth(string text, int fontSize)
{
TextBlock txtMeasure = new TextBlock();
txtMeasure.FontSize = fontSize;
txtMeasure.Text = text;
double width = txtMeasure.ActualWidth;
return width;
}

毫无疑问,这是一次黑客攻击。

关于text - 以编程方式测量 Silverlight 的文本字符串(以像素为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900316/

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