关于SilverLight的Textblock问题,欢迎讨论

zpj888 2011-11-29 03:54:13
我的项目是使用GDI+在WinForm中画好图,再转为Silverlight中显示,其他图形正常,除了TextBlock,问题有如下几个:
1、Silverlight中显示的文字明显比实际的字号偏小,两边确认都是宋体(SimSun),这样造成图形对齐不一致
2、GDI+中文本绘制时有竖排属性(StringFormatFlags.DirectionVertical),TextBlock怎么设置
3、TextBlock文本怎么垂直方向居中或靠下对齐,如果改为用Label,又无法满足下划线、裁剪、去尾等输出


我使用的是VS2010,Silverlight 4.0
另外有没有人弄过Silverlight中的样条曲线,对应GDI+中的DrawCurve
...全文
692 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Revolution_lxx 2014-04-23
  • 打赏
  • 举报
回复
Silverlight支持GDI+吗??
Bullatus 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zpj888 的回复:]

垂直对齐使用“ActualHeight”属性,经过计算后自己设置位置搞定
竖排使用每个字符后增加一个换行符,再设置行间距搞定

[/Quote]
这样做就有些自找麻烦了,对其属性和Margin属性可以很好的控制其位置。

上面的SL的FontSize单位打错了,是px,pt就是磅
1pt==(96/72) px,使用这个等式去换算字体大小,在WinForm FontSize=40时,SL中应为53.33
zpj888 2011-11-30
  • 打赏
  • 举报
回复
垂直对齐使用“ActualHeight”属性,经过计算后自己设置位置搞定
竖排使用每个字符后增加一个换行符,再设置行间距搞定

字体大小的问题有点麻烦,我使用的相同的FontSize设置的sl和Winform
经测试,同样的40号字,在Winform中画出的大小与记事本设置40号字一样,但是SL中偏小
Bullatus 2011-11-30
  • 打赏
  • 举报
回复
补充一下,WPF/SL中的FontSize的单位为pt,而GDI+中为磅
Bullatus 2011-11-30
  • 打赏
  • 举报
回复
1.你是否用相同的FontSize去设置sl和Winform的字体大小?
sl中使用的FontSize单位与WinForm不同
3.sl中使用Margin来控制与各边的距离。
在HorizontalAlignment = "Center"时,需要将Margin的Left和Right的值设置为0,并且将TextBlock的Width设置为Auto才能实现标准的剧中。
靠下可以设置VerticalAlignment = "Bottom",然后设置Margin中的Bottom位置的值来控制与下边缘的距离
zxh198841 2011-11-30
  • 打赏
  • 举报
回复
1,可以设置字体大小
3.TextAlignment可以设置
zpj888 2011-11-30
  • 打赏
  • 举报
回复
磅值转化为像素后,达到一致效果了
控制Margin属性也挺方便,不过计算一样是少不了的
我需要使用自动换行功能,所以不能使用"Auto"

VerticalAlignment和HorizontalAlignment不起作用

问题都解决了,谢谢
zpj888 2011-11-29
  • 打赏
  • 举报
回复
explend是什么东西,请指点
zpj888 2011-11-29
  • 打赏
  • 举报
回复
explend不知道是什么,马上去研究下

VerticalAlignment和HorizontalAlignment不起作用的,水平对齐需要TextAlignment
lwd203 2011-11-29
  • 打赏
  • 举报
回复
explend不是可以编辑图像么 为啥不用explend
TextBlock本身应该有属性设置的 类似VerticalAlignment="Center"一类的。

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧