如何在对象上绘制虚线?
我在 Windows 窗体上的控件上画一条线,如下所示:
// Get Graphics object from chart
Graphics graph = e.ChartGraphics.Graphics;
PointF point1 = PointF.Empty;
PointF point2 = PointF.Empty;
// Set Maximum and minimum points
point1.X = -110;
point1.Y = -110;
point2.X = 122;
point2.Y = 122;
// Convert relative coordinates to absolute coordinates.
point1 = e.ChartGraphics.GetAbsolutePoint(point1);
point2 = e.ChartGraphics.GetAbsolutePoint(point2);
// Draw connection line
graph.DrawLine(new Pen(Color.Yellow, 3), point1, point2);
我想知道是否可以绘制虚线(点)而不是常规实线?
I am drawing a line on a control on my Windows form like this:
// Get Graphics object from chart
Graphics graph = e.ChartGraphics.Graphics;
PointF point1 = PointF.Empty;
PointF point2 = PointF.Empty;
// Set Maximum and minimum points
point1.X = -110;
point1.Y = -110;
point2.X = 122;
point2.Y = 122;
// Convert relative coordinates to absolute coordinates.
point1 = e.ChartGraphics.GetAbsolutePoint(point1);
point2 = e.ChartGraphics.GetAbsolutePoint(point2);
// Draw connection line
graph.DrawLine(new Pen(Color.Yellow, 3), point1, point2);
I would like to know if it is possible to draw a dashed (dotted) line instead of a regular solid line?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
一旦您找出定义破折号的格式,事情就非常简单了
: float 数组中的数字代表不同颜色的破折号长度。因此,对于每个亮 2 个像素(黑色)和灭 2 个像素的简单破折号,您的阵列将如下所示:
{2,2}
然后重复该模式。如果您想要 5 宽的破折号,间隔为 2 个像素,您可以在代码中使用
{5,2}
,它看起来像:It's pretty simple once you figure out the formatting that defines the dashes:
The numbers in the float array represent dash lengths of different colors. So for a simple dash of 2 pixels on (black) and two off each your aray would look like:
{2,2}
The pattern then repeats. If you wanted 5-wide dashes with a space of 2 pixels you would use{5,2}
In your code it would look like:
我认为你可以通过改变用来画线的笔来实现这一点。
因此,将示例中的最后两行替换为:
I think you can accomplish this by changing the pen you use to draw your line.
So, replace the last 2 lines in your example with:
Pen
有一个公共属性,它被定义为如果您想绘制虚线,您可以设置
DasStyle.Dash
。Pen
has a public property that is defined asyou can set
DasStyle.Dash
if you want to draw a dashed line.Pen.DashPattern 将执行此操作。 查看此处的示例。
Pen.DashPattern will do this. Look here for an example.
在更现代的 C# 中:
In more modern C#:
要回答有关使用隐藏代码生成虚线的问题:
这个答案利用了 xaml 中画布的生成:
这里重要的方法是“StrokeDashArray”,它为绘制的线生成虚线。此处提供了更多信息: Shape.StrokeDashArray
To answer this question regarding the generation of a dashed line using the code-behind:
This answer make use of the generation of a canvas in the xaml:
The important method here is the "StrokeDashArray" that generates the dashes for the line drawn. More information is given here: Shape.StrokeDashArray