首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Pen.DashPattern

C# Pen.DashPattern
EN

Stack Overflow用户
提问于 2014-10-23 08:15:21
回答 3查看 3.9K关注 0票数 2

在使用拖放时,我想在两行之间画一条线。它的功能仅仅是可视化的,这样用户就知道他要删除行的位置了。这一行应该看上去像excel一次。这里我的代码:

代码语言:javascript
复制
        Pen _marqueePen = new Pen(Color.Gray, 2);
        float[] dashValues = {1f,1f};
        _marqueePen.DashPattern = dashValues;

但这看起来像

我想看起来像这样:

我是WinForms和C1柔性网格控件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-23 10:21:50

您可以使用这样的自定义笔:

代码语言:javascript
复制
using (Pen pen = new Pen(Color.Gray, 4f) )
{
    pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom;
    pen.DashPattern = new float[] { 0.25F, 0.25F };
    // now draw your stuff.. 
}

注意MSDN上的文档

dashArray数组中的元素设置每个破折号的长度和破折号图案中的空格。第一个元素设置一个破折号的长度,第二个元素设置一个空格的长度,第三个元素设置一个破折号的长度,依此类推。因此,每个元素都应该是一个非零正数.每个破折号的长度和破折号图案中的空格是数组中元素值和钢笔宽度的乘积。

你可以选择任何笔的宽度和任何破折号和间隙长度,只要你记住它们的关系。所以,如果你想要最好的破折号,确保他们乘以1.0像素!

以下是结果行:

票数 5
EN

Stack Overflow用户

发布于 2014-10-23 09:49:50

一些备选方案:

  • 您可以使用一个PNG图形,该图形模仿excel行为,然后在控件上绘制它(您必须垂直平铺图像)。
  • 用你的代码画三条线,用y轴和x轴的偏移量画一个像素.
票数 1
EN

Stack Overflow用户

发布于 2016-09-15 00:19:40

在我看来,这更像是一个矩形,HatchBrushHatchStyle.Percent50和高度为3。

你可以试试

代码语言:javascript
复制
Rectangle rect = new Rectangle(0, 0, 500, 3) //you will use the values here from your cursor but height will be 3
HatchBrush brush = new HatchBrush(HatchStyle.Percent50, Color.Black);
g.FillRectangle(brush, rect);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26523856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档