彩票走势图

VDF常见问题整理(二十七):如何创建带字符串的线型

翻译|使用教程|编辑:况鱼杰|2019-10-21 13:35:44.793|阅读 192 次

概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常见问题,教程整理的很齐全,非常适合新手学习,本文章将会介绍一种带字符串的线型是如何创建的。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

     VectorDraw Developer Framework(VDF)是一个用于应用程序可视化的图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。   

VectorDraw Developer Framework试用版下载


    点开本篇文章,是否对矢量图形工具感兴趣呢?来看看最新的矢量图形工具测评吧!点击此处>>即可直达哦!

问:

   我是否可以创建一种线型,其中线穿过文本,例如:---------------------我的文本在这里---- -------------------。这种线型应该如何创建?

答:

    为了使文本不被线段覆盖,您需要添加一个隐藏的线段,其大小与线型中的文本长度相同或稍大。具体请参见下面的代码和说明:

private void button10_Click(object sender, EventArgs e)
{
    vdDocument thisDocument = vdFramedControl1.BaseControl.ActiveDocument;
    vdLineType lt = thisDocument.LineTypes.Add("MyCustomLineType");
 
    lt = thisDocument.LineTypes.Add("MyCustomLineType");
    lt.Comment = "MyCustomLineType";
 
    lt.Segments.AddItem(new LineTypeSegment(1));
    lt.Segments.AddItem(new LineTypeSegment());
    lt.Segments[1].ShapeText = " Some Text Goes Here ";
    lt.Segments[1].ShapeStyle = thisDocument.TextStyles[0].GrTextStyle;
    lt.Segments[1].ShapeOffsetY = -.125;
    lt.Segments[1].Flag = LineTypeSegment.LineTypeElementType.TTF_TEXT;
    lt.Segments[1].ShapeScale = .25;
 
     // 这是计算文本长度的方法
    vdText txt = new vdText(thisDocument, lt.Segments[1].ShapeText, new gPoint(), lt.Segments[1].ShapeScale); //与文字相同
    txt.Style = thisDocument.TextStyles[0]; //与文字相同
    txt.Update();
    double txtwidth = txt.BoundingBox.Width; 
    txt = null;  //IS NOT NEEDED any more
    
    lt.Segments[1].ShapeOffsetX = txtwidth * 0.1 / 2.0; // 在文字前加5%空格
    
    // 在文本上方添加不可见的段,占文本长度的110%
    lt.Segments.AddItem(new LineTypeSegment(-1.0 * (txtwidth+ 2.0*lt.Segments[1].ShapeOffsetX)));// 在文本之前和之后添加一个空格,使不可见部分变大
    lt.Segments.AddItem(new LineTypeSegment(1));
    lt.Update();
 
    //用于显示
    vdLine manuallyDrawnPline = new vdLine(thisDocument, new gPoint(), new gPoint(25, 5));
    thisDocument.Model.Entities.AddItem(manuallyDrawnPline);
    manuallyDrawnPline.LineType = lt;
    manuallyDrawnPline.Update();
    manuallyDrawnPline.Invalidate();
 
    thisDocument.CommandAction.Zoom("E", 0, 0);
}

    对于以上问答,如果您有任何的疑惑都可以在评论区留言,我们会及时回复。此系列的问答教程我们会持续更新,如果您感兴趣,可以多多关注本教程。

相关资料推荐:


    如果您对想要购买正版授权VectorDraw Developer Framework(VDF),可以联系咨询相关问题。

    关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。

1561953111.jpg


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP