
我做了以下事情:
private static Pen CreateErrorPen() { var geometry = new StreamGeometry(); using (var context = geometry.open()) { context.Beginfigure(new Point(0.0,0.0),false,false); context.polylineto(new[] { new Point(0.75,0.75),new Point(1.5,new Point(2.25,new Point(3.0,0.0) },true,true); } var brushPattern = new GeometryDrawing { Pen = new Pen(Brushes.Red,0.2),Geometry = geometry }; var brush = new DrawingBrush(brushPattern) { TileMode = TileMode.Tile,VIEwport = new Rect(0.0,1.5,9.0,3.0),VIEwportUnits = BrushMapPingMode.absolute }; var pen = new Pen(brush,3.0); pen.Freeze(); return pen;} 这几乎可以工作,但根据文本中带下划线的单词位置,下划线通常显示为几个叠加波的模式.即使它们是正确的,下划线也有点模糊(我认为在像素之间画画时会出现问题).
我的解决方案是一种反复试验,所以我可能走错了路,尤其是VIEwport / VIEwportUnits.
我做错了什么,是否有办法获得清晰的下划线?
提前致谢.
解决方法 bstoney有一个解决这个问题的方法 here.关键似乎是设置VIEwBox和VIEwport,使波浪垂直分离,所以你只能在下划线中获得1.波浪中有一些中断可以通过向右延伸并更改VIEwBox来消除,因此它从X = 1而不是0开始:
<VisualBrush x:Key="WavyBrush" TileMode="Tile" VIEwBox="1,3,3" VIEwBoxUnits="absolute" VIEwport="0,-1,6,4" VIEwportUnits="absolute"> <VisualBrush.Visual> <Path Data="M 0,1 C 1,0 2,2 3,1 4,0 5,2 6,1" stroke="Red" strokeThickness="0.2"/> </VisualBrush.Visual></VisualBrush>总结
以上是内存溢出为你收集整理的wpf – Wavy强调TextDecoration:我做错了什么?全部内容,希望文章能够帮你解决wpf – Wavy强调TextDecoration:我做错了什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)