我想在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));
}
}
}发布于 2016-01-30 20:32:52
而不是使用this.Height和this.Width,而是分别使用this.ActualHeight和this.ActualWidth。
我试过了你的代码,它只为我画垂直线,所以逻辑上也有一些问题。
工作代码:
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));https://stackoverflow.com/questions/35106745
复制相似问题