【问题标题】:OnRender Method UserControl issueOnRender 方法用户控件问题
【发布时间】:2016-01-30 20:29:04
【问题描述】:

我想在 WPF 上的 UserControl 上绘制一个网格,所以我重写了 OnCreate 方法,但网格没有在我的 UserControl 上绘制。 请帮忙:)

public partial class FightField : UserControl
{
    public FightField()
    {
        InitializeComponent();
    }

    protected override void OnRender(DrawingContext drawingContext)
    {
        base.OnRender(drawingContext);
        var pen = new Pen(Brushes.Black, 1);
        for (var i = 1; i < 10; i++)
        {
            drawingContext.DrawLine(pen, new Point(this.Height / 10 * i, 0), new Point(this.Height / 10 * i, this.Width));
            drawingContext.DrawLine(pen, new Point(this.Width / 10 * i, 0), new Point(this.Width / 10 * i, this.Height));
        }
    }
}

【问题讨论】:

    标签: c# wpf user-controls


    【解决方案1】:

    不要使用this.Heightthis.Width,而是分别使用this.ActualHeightthis.ActualWidth

    PS.:我试过你的代码,它只为我画垂直线,所以逻辑也有问题。

    工作代码:

    drawingContext.DrawLine(pen, new Point(ActualWidth / 10 * i, 0), new Point(ActualWidth / 10 * i, ActualHeight));
    drawingContext.DrawLine(pen, new Point(0, ActualHeight / 10 * i), new Point(ActualWidth, ActualHeight / 10 * i));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-12
      • 2014-03-28
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多