2010-04-28 1 views
0

내 작업은 RichTextBox처럼 동작하지만 그래픽 그물을 포함하는 컨트롤을 만드는 것입니다. 유일한 문제는이 네트가 해결되고 있다는 것입니다.그래픽 그물 및 텍스트

OnPaint 메서드 재정의 솔루션이어야하지만 그렇지 않습니다.

이 코드 :이 방법은 두 가지가하지 않는 사실 때문에

protected override void WndProc(ref System.Windows.Forms.Message m) 
{ 
    base.WndProc(ref m); 
     if (m.Msg == 15) 
     { 
      Graphics g = this.CreateGraphics(); 
      g.DrawLine(new Pen(Color.White, 1), new Point(0, 0), new Point(400, 400)); 
     } 
} 

때로는 그립니다 여분의 라인

:

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) 
{ 
    base.OnPaint(e); 
    ...//drawing a line 
} 

이 코드의 텍스트없이 나에게를 RichTextBox를 제공합니다 일하러 무엇을 시도해야할지 모르겠다. 당신의 조언 :

BR 드미트리

P.S. 대기 WPF의 좋은 기회에 대해 많은 이야기를 들었지만,이 기술과는별로 공통적 인 것이 아니며 무엇부터 시작해야할지 모르겠습니다.

P.P.S. 나의 영어를 유감으로 여긴다. 그것은 자연스러운 언어가 아니다. 당신은 그리드 라인의 일종을 의미하는 순에 의한 경우

+0

당신이 ControlTemplates에 대해 잘 알고 있습니까? – TerrorAustralis

+0

이것은 읽기 시작할 수 있습니다. 고맙습니다. – user327383

답변

1

는, 한 번 봐 걸릴 다음은 시작하려면 :

<RichTextBox> 
    <RichTextBox.Document> 
     <FlowDocument> 
      <Paragraph Foreground="Red"> 
       <Run>Sample Text...</Run> 
      </Paragraph> 
     </FlowDocument> 
    </RichTextBox.Document> 
    <RichTextBox.Background> 
     <VisualBrush TileMode="Tile" Viewport="0,0,20,20" ViewportUnits="Absolute" Viewbox="0,0,20,20" ViewboxUnits="Absolute"> 
      <VisualBrush.Visual> 
       <Rectangle Stroke="LightGray" StrokeThickness="1" Fill="Transparent" Width="100" Height="100" /> 
      </VisualBrush.Visual> 
     </VisualBrush> 
    </RichTextBox.Background> 
</RichTextBox> 
+0

아, 훌륭합니다! 꽤 좋아 보인다 :) – user327383