当前位置:编程学习 > C#/ASP.NET >>

求救:怎样在不规则的图形中绘画文本

求救:怎样在不规则的图形中绘画文本?如:
         ------------------------------
         |我要将汉字写到这里,汉字的内 |
---------                             |
|容是不确定的,我怎样将这些汉字写到不规|
|                                 -----
|则的图形中.如横线画出的图形,谢谢!|
----------------------------------- --------------------编程问答-------------------- FontStyle fs = 0;
Graphics g = Graphics.FromImage(bmp); 
Font a = new Font(this.SelectedFontFamily, 150, fs);
Brush b=Brushes.Black;       
g.DrawString("", a, b, new PointF(10, 10));
--------------------编程问答-------------------- 我没说明白,我是要把汉字写到类似于下列形状的区域中!
        ---------------------------
       |我要将汉字写到这里,汉字的内  |
-------|                          |
|容是不确定的,我怎样将这些汉字写到不规 |
                              | --
|则的图形中.如横线画出的图形,谢谢!|
------------------------------- --------------------编程问答-------------------- 这怎么发出去就变形了
晕倒
--------------------编程问答-------------------- 用一下UBB

你需要保留格式的地方。

--------------------编程问答-------------------- --------------------编程问答-------------------- ....
\不能指向你自己电脑上的图片。别人电脑上没这个图片文件的。 --------------------编程问答-------------------- 我想用图片说明问题,怎样上传呀 --------------------编程问答--------------------

以下是示例代码,要稍作改造,
Protected override void OnPaint(PaintEventArg e)
{    
    m_StringFormat=new StringFormat();
    m_StringFormat.FormatFlags|=SringFormat.NoWrap;
    m_StringFormat.FormatFlags|=SringFormat.MeasureTrailingSpace;

    RectangleF rectF=new RectangleF(ClientRectangle.Left+x,ClientRectangle.Top+y,sizeF.Width,sizeF.Height);
    SolidBrush brushFont=new SolidBrush(ForeColor);
    e.Graphics.DrawString("你要绘制的文字",Font,brushFont,rectF,m_StringFormat);
    brushFont.Dispose();
}
--------------------编程问答-------------------- 上面的x和y是绘制文本自身的宽度和高度。 --------------------编程问答--------------------
引用 8 楼 computerfox 的回复:
C# code

以下是示例代码,要稍作改造,
Protected override void OnPaint(PaintEventArg e)
{    
    m_StringFormat=new StringFormat();
    m_StringFormat.FormatFlags|=SringFormat.NoWrap;
    m_StringFormat.Form……


答*案 --------------------编程问答-------------------- 看看这个例子 
自绘文字
http://blog.csdn.net/jianuMan/archive/2010/06/19/5680535.aspx

你肯定有不规则图形边框的坐标信息。 你推算出每一行起点坐标和终点坐标,由此算出可以显示多少个文字,从哪个点开始显示。

你可以依据字体大小,算出文字高度为多少像素
每次paint 的时候将文字按照预先算出的坐标信息 DrawString一次。
就可以了 --------------------编程问答--------------------
引用 10 楼 dylike 的回复:
引用 8 楼 computerfox 的回复:
C# code

以下是示例代码,要稍作改造,
Protected override void OnPaint(PaintEventArg e)
{
m_StringFormat=new StringFormat();
m_StringFormat.FormatFlags|=SringFormat.NoWrap;
m_StringFo……


正解。取得不规则图形的坐标,然后自已跟根据其信息写出特定的字!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,