如何画一个 X? [关闭]
Posted
技术标签:
【中文标题】如何画一个 X? [关闭]【英文标题】:How do I draw an X? [closed] 【发布时间】:2015-10-06 18:47:31 【问题描述】:所以我试着画一个X:
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.DrawLine(new Pen(Color.Black, 1),
this.Width + 20 - 50,
20,
this.Width + 25 - 50,
10);
e.Graphics.DrawLine(new Pen(Color.Black, 1),
this.Width - 20 + 50,
20,
this.Width + 25 - 50,
10);
但它看起来像一把斧头。无论我为第二行代码设置哪个值,都是不对的。
【问题讨论】:
最好的选择:获取纸张列表,绘制矩形并在每个角落写下坐标......否则没有太多的+/-组合用于x坐标尝试所有:) 让我看看能不能找到一支笔。 @AlexeiLevenkov 很好的提示......不幸的是它没有帮助我。如果脑子坏了就不能用笔了哈哈 【参考方案1】:10 x 10 X 只需添加位置 self
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.DrawLine(new Pen(Color.Black, 1),
1,
1,
10,
10);
e.Graphics.DrawLine(new Pen(Color.Black, 1),
1,
10,
10,
1);
【讨论】:
@se13013 只是一个提示:永远不要在每次绘画操作中创建新的笔。绝不!严重地。创建一次并重复使用它。在这种情况下,您甚至可以直接选择 Pens.Black。我说你不应该这样做吗?它会明显影响性能。总结:不要这样做。永远不要这样做......大声笑 @AdrianoRepetti 好的,谢谢。【参考方案2】:DrawLine(pen, startPoint_X, startPoint_Y, stopPoint_X, stopPoint_Y);
你的两条线是相同的 stopPoint 坐标,所以它会画一个 V。 第二件事是第二行的 X 坐标大于控件的宽度,因此第二行的起点将超出您的控制范围
【讨论】:
以上是关于如何画一个 X? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在ios中自定义推送和弹出动画时将视图传递给另一个控制器? [关闭]
如何通过onclick list项打开带动画的alertdialog? [关闭]