2012-01-11 3 views
0

그래서 C# WebBrowser 컨트롤을 사용 중이며 문자열을 HTML/CSS 무지개로 변환하려고합니다. 현재 나는 무작위로 16 진수 형식의 1000 가지 색상을 생성하고 각 문자에 대해 span 스타일 color:(hex value)을 추가하는 문자열의 각 문자를 반복합니다. 그것은 작동하지만 더 많은 무지개 효과를 위해 함께 병합하는 색상 싶습니다. 이것이 가능한가? 다음은 현재 기능입니다.C# 무지개 텍스트 (16 진수 형식)

public static string Rainbow(string text) 
    { 
     int numColors = 1000; 
     var colors = new List<string>(); 
     var random = new Random(); 
     for (int i = 0; i < numColors; i++) 
     { 
      colors.Add(String.Format("#{0:X6}", random.Next(0x1000000))); 
     } 

     string rainbow = ""; 
     int index = 0; 
     foreach (char c in text) 
     { 
      rainbow += String.Format("<span style='color: {0};'>{1}</span>", colors[index], c.ToString()); 

      if (index > numColors) 
       index = 0; 
      else 
       index++; 
     } 

     return rainbow; 
    } 
+0

때문에 이것은 C# 것보다 CSS 질문 정말 더 : 여기에 대한 설명을 찾을 수 있습니다. – apiguy

+0

나는 무지개를 C# 문자열에 저장해야하기 때문에 CSS 나 자바 스크립트 응답을 구현할 수 없기 때문에 동의하겠다. 기본적으로 HTML 문서 innerHTML을 조작하고 C# 환경에서 호출 될 때 WebBrowser를 통해 전달합니다. –

+0

원하는 것은 완전히 명확하지 않습니다. 모든 색상이 무작위로 표시되는 대신 색상이 점차적으로 바뀌기를 원하십니까? –

답변

1

Simple; Random을 사용하지 마십시오! 이 같은

뭔가 당신이 시작하는 데 도움이 될 수

for (int i = 0; i < 256; i++) 
    { 
     colors.Add(String.Format("#{0:X2}{1:X2}00", i, 255-i)); 
    } 

255 단계에서 녹색에서 빨간색으로 페이드.

HTH!

+0

이것은 정확히 내가 믿어야하는 트랙입니다. 이것은 단지 컬러 차트의 1 스펙트럼을 다루고 있습니다. 나는 이것을보고 있었고 더 잘 설명하는 몇 가지 자바 스크립트 예제를 보았습니다. 당신의 방법은 효과가 있습니다. 그러나 색상을 조금 더 빨리 바꾸고 싶다면 어떻게해야할까요? 4 ~ 5 자로 시작하여 새로운 색 구성표로 변합니다. [자바 스크립트 예제] (http://rainbow.arch.scriptmania.com/scripts/rainbowtext2.html) –

+0

단계를 더 크게 만듭니다. 'for (int i = 0; i <256; i + = 51)' –