请问在C#中怎样使用SVG?

muxinquanjuan 2008-03-31 02:22:43
我在用2005的C#做一个GIS,要使用VSG,由于初次学习使用C#,不熟练,向大家求救!!
...全文
598 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fram123 2009-05-03
  • 打赏
  • 举报
回复
up
langxiaodi 2009-05-03
  • 打赏
  • 举报
回复
在 aspx 页面 能修改svg 吗?
我是这么写的 怎么不对呢
var xmlstring=ResultData.value;
var svgViewer=document.getElementById("svg");
SVGDoc = window.document.getElementById("svg").getSVGDocument();
alert(SVGDoc.getElementById("ruler").getAttribute("color"));
var new_node=svgViewer.window.parseXML(xmlstring,SVGDoc);
SVGDoc.getElementById("ruler").appendChild(new_node);
xmlstring=<g id='line'><line x1='10' y1='"+start+"' x2='10' y2='"+end+"' stroke='black' stroke-width='1' /></g>
xmlstring 是从后台取得string 是正确的
langxiaodi 2009-05-03
  • 打赏
  • 举报
回复
问下 怎么把string 转为 svg 用的xml
langxiaodi 2009-05-03
  • 打赏
  • 举报
回复
自己写的控制是什么 ext 是什么
netharry你也太强了吧 能给我代码吗
或者给我做个小例子
netharry 2009-05-02
  • 打赏
  • 举报
回复
当然了,你可以通过判断json.items[i].draw可以画任何图形:
if(json.items[i].draw=='line') canvas.drawLine。。。
netharry 2009-05-02
  • 打赏
  • 举报
回复
我是用ext编的,比如画两个ploygon:
"{length:2,items:[{draw:'ploygon',stroke:null,strokeWidth:0,fill:'#F1D0BD',data:'44.95771,84.3984 43.7352,78.8685 42.3852,75.396 41.999,74.8173 41.549},"+
"{draw:'ploygon',stroke:null,strokeWidth:0,fill:'#E9BCA6',data:'22.7092,65.4298 22.1304,65.5586 21.6804,66.0723 21.2942,66.7798 21.0379,67.8086 20.7154,69.031 20.6517,70.6385 20.7154,72.5673 20.9091}]}"——这是服务器输出的字符串

var canvas=new Ext.ux.Canvas(); //Canvas是我定义的组件
canvas.render('canvas-div');

Ext.get('Button1').on('click',function(e){
Ext.Ajax.request({
url: 'Default2.aspx',
params: {icon:'ear1'},
callback: function(options,success,response){
if(success){
var json=Ext.decode(response.responseText);
for(var i=0;i<json.length;i++){
canvas.drawPolygon(json.items[i].id,json.items[i].data,json.items[i].stroke,json.items[i].strokeWidth,json.items[i].fill);
}

}
else{
alert("no response");
}

}
});

这里是Canvas的方法:
onRender : function(container, position){ //这是私有方法:生成一个svg的命名空间
if(!Ext.isIE){
var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");
svg.id = this.getId();
svg.setAttribute("width",178+"px");
svg.setAttribute("height",178+"px");
svg.setAttribute("viewBox","0 0 178 178");
container.dom.insertBefore(svg, position);
this.svg = Ext.get(svg);
}
},
drawPolygon :function(id,p,s,sw,f){ //这里就开始画Polygon了
var polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
if(id){
polygon.setAttribute('id', id);
}
polygon.setAttribute('position','absolute');
polygon.setAttribute('points',p);

if(s){
polygon.setAttribute('stroke', s);
}
if(sw!=0){
polygon.setAttribute('stroke-width', sw);
}
polygon.setAttribute('fill', f);
this.svg.dom.appendChild(polygon);
}
}
总之,用ext非常容易操作svg。
langxiaodi 2009-05-02
  • 打赏
  • 举报
回复
楼上的 能指导一下吗
ajax传数据怎么传的
netharry 2009-05-02
  • 打赏
  • 举报
回复
我也在编一个svg网站,用ajax传送数据,在客户端用js生成svg,在ie下生成vml
netharry 2009-05-02
  • 打赏
  • 举报
回复
安装svg viewer,调用其控件。不过最新的svg viewer不让调用,早期的可能可以。
langxiaodi 2009-05-02
  • 打赏
  • 举报
回复
我也是要做这样的问题 你现在有什么进展了没有
http://topic.csdn.net/u/20090502/16/22882901-fb19-4c16-8161-7d8b1ae3a138.html
我的帖子也在这里挂着 好像没有人整着玩意呢
我qq250290198
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
有点难度哦
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
接分先!
ysjleila 2008-04-28
  • 打赏
  • 举报
回复
帮你顶一下,呵呵

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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