图形网和文本

时间:2010-04-28 01:02:00

标签: c# wpf controls richtextbox

我的任务是创建一个控件,它的行为类似于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。对不起我的英语,这不是我的自然语言。

1 个答案:

答案 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>