在Wpf 4.0中,您可以关闭Frameworkelement及其所有子元素的文本反别名,方法是将它放在主窗口中:
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Display);
TextOptions.SetTextRenderingMode(this, TextRenderingMode.Aliased); 这对于TextBlocks等很好,但是当使用DrawingContext的方法DrawText(FormattedText)或DrawGlyphRun(..)时,它似乎没有任何效果。
是否有可能通过DrawingContext绘制别名文本?(我知道FormattedText.BuildGeometry()技巧,但当使用小文本大小时,这看起来很糟糕)
发布于 2010-11-04 11:08:09
我现在没有WPF4,所以我不能测试它。但是快速扫描显示您可以使用DrawingVisual。在这里设置RenderingMode,然后使用RenderOpen获取DrawingContext。
问题是你想要在哪里以及如何画这篇文章。
发布于 2014-03-19 18:36:30
如何消除字形模糊效果:
var glyphRun = new GlyphRun(typeface, 0, false, emSize, glyphIndices, p, advanceWidths, null, null, null, null, null, null);
var rect = glyphRun.ComputeAlignmentBox();
Double halfPenWidth = 0.5;
GuidelineSet guidelines = new GuidelineSet();
guidelines.GuidelinesX.Add(rect.Left + halfPenWidth);
guidelines.GuidelinesX.Add(rect.Right + halfPenWidth);
guidelines.GuidelinesY.Add(rect.Top + halfPenWidth);
guidelines.GuidelinesY.Add(rect.Bottom + halfPenWidth);
drawingContext.PushGuidelineSet(guidelines);
drawingContext.DrawGlyphRun(brush, glyphRun);
drawingContext.Pop();发布于 2011-07-13 13:45:01
FormattedText有一个重载的构造函数,允许指定TextFormattingMode:http://msdn.microsoft.com/en-us/library/ee474866.aspx
https://stackoverflow.com/questions/4095750
复制相似问题