2010-04-28 9 views
0

Ma tâche consiste à créer un contrôle, qui se comporte comme RichTextBox, mais qui contient un réseau graphique. La seule tâche, ce net résout, c'est d'être visible.Réseau graphique et texte

Cela devrait être une solution dans la méthode OnPaint, mais ce n'est pas le cas.

Ce code:

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

me donne RichTextBox sans texte de

Ce code:

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)); 
     } 
} 

dessine parfois des lignes supplémentaires

En fait, étant donné que ces deux façons ne le font pas travail, je ne sais pas quoi essayer. En attente de vos conseils :)

BR Dmitry

P.S. J'ai beaucoup entendu parler des grandes opportunités de WPF, mais je ne suis pas vraiment habitué à cette technologie et je ne sais pas par quoi commencer.

P.P.S. Désolé pour mon anglais, ce n'est pas ma langue naturelle.

+0

Connaissez-vous ControlTemplates? – TerrorAustralis

+0

Cela pourrait être, en commençant à lire. Merci :) – user327383

Répondre

1

Si par Net vous dire une sorte de lignes de la grille, jetez un oeil à ce qui suit pour vous aider à démarrer:

<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

Oh, super! Ça a l'air plutôt bien :) – user327383