2012-08-09 3 views
1

요소에 채우기를 쉽게 추가 할 수 있지만 내 문제는 항상 경로 요소가 아니며 , <ellipse> 등이 될 수 있다는 것입니다.모든 svg 파일의 모든 요소의 색상 변경

하지만 svg 파일의 모든 요소의 색상을 변경하려면 어떻게해야합니까? 어떤 종류이든간에?

내 솔루션 :

  • 이 그들을 통해 채우기 속성, 다음 루프를 지원하는 모든 요소를 ​​찾을 수 있습니다.

  • 모든 태그에 채우기 태그를 붙이기 만하면되지만 모든 태그가 태그를 지원하지는 않으므로 문제가 발생하지 않을까요?

나는 첫 번째는 동적이지, 다른 하나는 내가 여기서 할 수있는 스마트 뭔가 더러운

거기에있다 동적이지 ... 이러한 솔루션 중 하나를 좋아하지 않아 ? 전 세계적인 색깔이나 다른 것을 정의 할 수 있습니까? 또는 svg.codeplex에 사용할 수있는 기능이 있습니까 (찾을 수 없음)?

답변

2

색상을 설정하려면 CSS를 사용하십시오. 당신이 요소에서 채우기 스타일을 제거 할 경우 자신은 그냥 채우기 색상은 빨간색 될 것입니다 받아 외부 스타일 시트와 모든 일에

<style type="text/css"> 
    <![CDATA[ 
    * { 
     fill: #FF0000; 
    } 
    ]]> 
</style> 

또는 대안을 추가 할 수 있습니다. document.styleSheets[1]

+0

감사합니다. 하지만 문제가 있습니다. 서버에서해야합니다. 하지만이 css 코드는 내 seccond 더러운 솔루션과 동일합니까? – BjarkeCK

+0

그래서 원하는 스타일로 서버에 스타일 요소를 만듭니다. –

2

XPath를 사용해 보셨습니까? (System.Xml.XPath 사용)

string newColor = "#123456"; 
XElement root = XElement.Load(file); 
var colors = root.XPathSelectElements("//*[@fill]"); 
foreach(XElement node in colors) 
    node.Attribute("fill").Value = newColor; 

추신 : 이것은 첫 번째 글 머리 기호에 대한 답변입니다.

관련 문제