如何使用system.drawing.stringformat获取垂直nowrap字符串

时间:2012-11-09 20:10:42

标签: vb.net system.drawing string-formatting

我正在研究图形,我需要在绘制图表时将图形上的轴标记为单个垂直文本行。我不在乎是否有一些文字被删除,但我需要它优雅地截断。

我正在使用Carlos Ag提供的WebChart dll并将System.Drawing.StringFormat对象传递给图表。

 objChartText = New WebChart.ChartText
 objChartText.Font = New Font("Verdana", 8, FontStyle.Regular, GraphicsUnit.Point)

 Dim objStringFormat As StringFormat = New StringFormat(StringFormatFlags.DirectionVertical)

 objStringFormat.LineAlignment = StringAlignment.Center
 objStringFormat.Alignment = StringAlignment.Center
 objStringFormat.Trimming = StringTrimming.Word

 objChartText.StringFormat = objStringFormat

“StringformatFlags.DirectionVerticle”是一个确定位置的枚举。我想知道是否有一个不同的已知非枚举值,我可以通过,这将给我所需的结果。 defined枚举中没有一个能给我我想要的东西。我试过简单地添加我想要的枚举2(DirectionVertical)和4096(nowrap),但是在图表下面留下宽间距的单个字符。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

这里的问题实际上是修剪和对齐,而不是枚举。

可以添加枚举以组合效果。在这种情况下,正确的值是4098,因此实例化应该读取

Dim objStringFormat As StringFormat = New StringFormat(4098)

应修改修剪或对齐。我的解决方案是将修剪更改为

 objStringFormat.Trimming = StringTrimming.Character

这解决了我的问题,并允许我创建一个漂亮的图形。