Wpf 如何从文本中获取PathGeometry(未勾勒/格式化)
在自定义Wpf 如何从文本中获取PathGeometry(未勾勒/格式化),wpf,text,geometry,Wpf,Text,Geometry,在自定义形状中,将路径几何体作为定义几何体我希望路径几何体显示文本 我尝试了格式化文本,但这看起来像是艺术文本(如3-d字形)。我没有意识到,可能是语言障碍。 我想从一个看起来像纯文本的文本创建一个PathGeometry,但仍然使用字体、字体大小、宽度等 我该怎么做呢?我能给BuildGeometry一个参数吗? 我试过这个: PathGeometry geometry = new PathGeometry(); FormattedText formattedText = new Forma
形状
中,将路径几何体
作为定义几何体
我希望路径几何体
显示文本
我尝试了格式化文本,但这看起来像是艺术文本(如3-d字形)。我没有意识到,可能是语言障碍。我想从一个看起来像纯文本的文本创建一个
PathGeometry
,但仍然使用字体、字体大小、宽度等
我该怎么做呢?我能给BuildGeometry
一个参数吗?
我试过这个:
PathGeometry geometry = new PathGeometry();
FormattedText formattedText = new FormattedText(text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface("Tahoma"), 12, Brushes.Black);
var geometrygroup = formattedText.BuildGeometry(new Point())as GeometryGroup;
if (geometrygroup != null)
{
foreach (var child in geometrygroup.Children)
{
var line = child as GeometryGroup;
if (line != null)
{
foreach (var glyph in line.Children)
{
var path = glyph as PathGeometry;
if (path != null)
{
geometry.AddGeometry(path);
}
}
}
}
}
geometry.Transform = new TranslateTransform(20, 80);
您的自定义形状类可以如此简单:
public class TextShape : Shape
{
public FormattedText Text { get; set; }
protected override Geometry DefiningGeometry
{
get { return Text.BuildGeometry(new Point()); }
}
}
只需注意设置其Fill
属性,而不是设置Stroke
否则,只要调用或,您就可以从任何其他
几何体创建PathGeometry
。我希望live总是这么简单。