Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这条虚线在WindowsForms.NETCompact框架中显示为实线?_C#_.net_Winforms_Compact Framework - Fatal编程技术网

C# 为什么这条虚线在WindowsForms.NETCompact框架中显示为实线?

C# 为什么这条虚线在WindowsForms.NETCompact框架中显示为实线?,c#,.net,winforms,compact-framework,C#,.net,Winforms,Compact Framework,以下代码出现在.NET Compact Framework下System.Windows.Forms.PictureBox的System.Windows.Forms.PaintEventHandler中(e为PaintEventArgs类型): 尽管我已将DashStyle设置为虚线,但该线仍呈现为实线。长度和颜色都很好 有什么想法吗?这实际上是(针对Windows API,而不是针对compact框架): Windows CE支持宽画笔和虚线画笔,但不支持虚线画笔、内框画笔、几何画笔、画笔收头

以下代码出现在.NET Compact Framework下System.Windows.Forms.PictureBox的System.Windows.Forms.PaintEventHandler中(e为PaintEventArgs类型):

尽管我已将DashStyle设置为虚线,但该线仍呈现为实线。长度和颜色都很好

有什么想法吗?

这实际上是(针对Windows API,而不是针对compact框架):

Windows CE支持宽画笔和虚线画笔,但不支持虚线画笔、内框画笔、几何画笔、画笔收头样式、或宽画笔和虚线画笔

这实际上是(针对Windows API,而不是针对compact框架):

Windows CE支持宽画笔和虚线画笔,但不支持虚线画笔、内框画笔、几何画笔、画笔收头样式、或宽画笔和虚线画笔


它应该按预期的那样工作。我想知道你为什么在using子句之外声明和修改Pen。在我看来那是不对的<代码>使用(Pen penDashed=new Pen(Color.Red,3)){penDashed.DashStyle=System.Drawing.Drawing2D.DashStyle.Dash;e.Graphics.drawine(penDashed,30,30,100,30);}将是我编写此代码的方式。.声明为这样做的原因是我遵循继承代码中已经存在的样式。它实际上是在绘制实心矩形(使用Graphics.DrawPolygon()。我试图在混合中添加一个虚线矩形。虚线矩形呈现为实心,所以我尝试了一些简单的方法,比如一条线,得到了相同的结果。钢笔的宽度使虚线相互接触。如果绘制笔宽为1的线,则破折号将再次出现。我不知道是否有任何直接的方法可以得到想要的结果。这不应该发生!在Winforms中测试虚线之间的间距实际上随着pen.width的增加而增加,实际上始终保持等于pen.width,DashCap=flat我不知道紧凑框架,但在Winforms中使用
pen.DashCap=DashCap.Triangle将使间隙看起来更大一些。政府并没有说它是在CFIs的支持下运作的。我想知道你为什么在using子句之外声明和修改Pen。在我看来那是不对的<代码>使用(Pen penDashed=new Pen(Color.Red,3)){penDashed.DashStyle=System.Drawing.Drawing2D.DashStyle.Dash;e.Graphics.drawine(penDashed,30,30,100,30);}
将是我编写此代码的方式。.声明为这样做的原因是我遵循继承代码中已经存在的样式。它实际上是在绘制实心矩形(使用Graphics.DrawPolygon()。我试图在混合中添加一个虚线矩形。虚线矩形呈现为实心,所以我尝试了一些简单的方法,比如一条线,得到了相同的结果。钢笔的宽度使虚线相互接触。如果绘制笔宽为1的线,则破折号将再次出现。我不知道是否有任何直接的方法可以得到想要的结果。这不应该发生!在Winforms中测试虚线之间的间距实际上随着pen.width的增加而增加,实际上始终保持等于pen.width,DashCap=flat我不知道紧凑框架,但在Winforms中使用
pen.DashCap=DashCap.Triangle将使间隙看起来更大一些。政府并没有说它得到了CFC的支持,谢谢。(并带回了使用匈牙利符号时的糟糕记忆。:)果然,通过将宽度降低到1,您链接到的文档中提到了CE的默认笔宽,破折号再次出现。如果MS能在.NET文档中包含这个易于访问的地方,那就太好了。谢谢。(并带回了使用匈牙利符号时的糟糕记忆。:)果然,通过将宽度降低到1,您链接到的文档中提到了CE的默认笔宽,破折号再次出现。如果MS能在.NET文档中方便地包含这一点,那就太好了。
var penDashed = new Pen(Color.Red, 3);
penDashed.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
using (penDashed)
{
   e.Graphics.DrawLine(penDashed, 30, 30, 100, 30);
}