我的任务是创建一个控件,它的行为类似于RichTextBox,但包含一个图形网络。 唯一的任务,这个网络正在解决,是可见的。
它应该是重写OnPaint方法的解决方案,但事实并非如此。
此代码:
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
base.OnPaint(e);
...//drawing a line
}
给了我RichTextBox而没有文本
此代码:
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));
}
}
有时会画出额外的线条
实际上由于这两种方式都不起作用,我不知道该尝试什么。 等待你的意见:)
BR德米特里
P.S。我听说过很多关于WPF的大好机会,但我对这项技术并不常见,也不知道从什么开始。
P.P.S。对不起我的英语,这不是我的自然语言。
答案 0 :(得分:1)
如果用net表示某种网格线,请看下面的内容以便开始使用:
<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>