我想在一个文档里面画两个圆里面中间用一个带箭头的直线连接 我需要点右键选节点显示出节点的属性 而且可以移动节点 如何用C#实现这些功能呀
谢谢呢先 100point

解决方案 »

  1.   

    这种功能我以前用javascript+VML实现过,建议楼主用这种方法吧
      

  2.   

    在VML里面,标记使用的是XML扩张,需要一个namespace(命名空间),你可以使用惯用的“v”作为命名空间,使用IE5.0到IE6.0通用的定义如下:<html xmlns:v="urn:schemas-microsoft-com:vml">
    <STYLE>
    v\:* { Behavior: url(#default#VML) }
    </STYLE>    xmlns 全称就是XML NameSpace 也就是命名空间。Behavior(行为)也是IE5.0新推出的东西,它的功能非常强大,结合样式表,可以给任何HTML对象增加行为(新的属性、方法、事件),而在这里,它的用处是把命名空间“v”和系统预定义的行为VML连接。这样定义以后,你就可以使用下面的标记了,和普通的HTML标记有所区别,每个标记都增加了一个命名空间:<v:shape></v:shape>    和其他HTML元素一样,VML标记里面可以定义DHTML大部分属性和事件,比如说id,name,title,onmouseover等等。在写法上VML比较灵活,很多属性既可以写在标记里面,又可以独立出一个新的标记来表示:<v:shape id=shape1 name=shape1 onmouseover="alert(this.id)" StrokeColor=red Path="m 0,0 l 10,10 x e"></v:shape>
    等同于下面的写法:
    <v:shape id=shape1 name=shape1 onmouseover="alert(this.id)">
    <v:Stroke StrokeColor=red/>
    <v:Path v="m 0,0 l 10,10 x e"/>
    </v:shape>    当然不是所有的属性都可以写成独立的标记,常用的比如说上面的 Stroke(按我的理解可以翻译成线性),Path,Shadow,Fill(填充)等,VML这样的方式可以理解为 shape 的属性分类,使属性更直观。
        Shape 对象派生出来的一些对象,更加直接的图象,比如说 Rect(矩形),RoundRect(圆边的矩形),Oval(圆),Line(线),PolyLine(不规则折线),Image(图形文件)等等,以后将对这些对象细细描述。
      

  3.   

    顶用C# GDI+应该可以实现的
      

  4.   

    还是用VML好,这是个好东西的
      

  5.   

    string strDotName=File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.ToString().Length-4,4);
    Random ro = new Random(System.DateTime.Now.GetHashCode());
    string strFileName="image"+ro.Next()+strDotName;
    File1.PostedFile.SaveAs(this.Server.MapPath("upload/"+strFileName));//图片上传结束,下面生成缩略图
    System.Drawing.Image.GetThumbnailImageAbort myCallback =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
    Bitmap myBitmap = new Bitmap(this.Server.MapPath("upload/")+"\\"+strFileName);
    Bitmap tomap=new Bitmap(Server.MapPath("images/logo.gif"));
    System.Drawing.Image myThumbnail = myBitmap.GetThumbnailImage(200,150,myCallback,IntPtr.Zero);
    Response.ContentType="image/jpeg";
    Bitmap newbmp=new Bitmap(myThumbnail);
    Graphics g=Graphics.FromImage(newbmp);
    g.DrawImageUnscaled(tomap,0,0,200,150); Random ro1 = new Random(System.DateTime.Now.GetHashCode());
    string strName="image"+ro1.Next()+".jpg"; newbmp.Save(this.Server.MapPath("upload/"+strName),System.Drawing.Imaging.ImageFormat.Jpeg);
    myBitmap.Dispose();
    tomap.Dispose();
    newbmp.Dispose();