How do you draw a line on a canvas in WPF that is 1 pixel thick?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • complete
    New Member
    • Aug 2006
    • 11

    How do you draw a line on a canvas in WPF that is 1 pixel thick?

    How do you draw a line on a canvas in WPF that is 1 pixel thick?

    This is the method I am using for drawing a line on a canvas in WPF that uses the line class set to 1 pixel thick but it actually draws a line that is two pixels thick:

    Code:
                Line myLine = new Line();
    
                myLine.Stroke = System.Windows.Media.Brushes.Black;
    
                myLine.X1 = 100;
                myLine.X2 = 140;  
                myLine.Y1 = 200;
                myLine.Y2 = 200;
    
                myLine.StrokeThickness = 1;
                
                graphSurface.Children.Add(myLine);
    Microsoft might have decided to set a standard for line thickness and the minimum is 2 pixels thick when you set the strockThickness to 1, but when you already have rectangles drawn in XAML and even error fonts using WingDings, it is an obvious miss-match. How do you draw a line that is truly 1 pixel thick?


    I tried:
    myLine.StrokeTh ickness = 0.5;
    but that only makes the line burry.

    Is there some sort of setting I need to make in the grid instead?
  • ThatThatGuy
    Recognized Expert Contributor
    • Jul 2009
    • 453

    #2
    Originally posted by complete
    How do you draw a line on a canvas in WPF that is 1 pixel thick?

    This is the method I am using for drawing a line on a canvas in WPF that uses the line class set to 1 pixel thick but it actually draws a line that is two pixels thick:

    Code:
                Line myLine = new Line();
    
                myLine.Stroke = System.Windows.Media.Brushes.Black;
    
                myLine.X1 = 100;
                myLine.X2 = 140;  
                myLine.Y1 = 200;
                myLine.Y2 = 200;
    
                myLine.StrokeThickness = 1;
                
                graphSurface.Children.Add(myLine);
    Microsoft might have decided to set a standard for line thickness and the minimum is 2 pixels thick when you set the strockThickness to 1, but when you already have rectangles drawn in XAML and even error fonts using WingDings, it is an obvious miss-match. How do you draw a line that is truly 1 pixel thick?


    I tried:
    myLine.StrokeTh ickness = 0.5;
    but that only makes the line burry.

    Is there some sort of setting I need to make in the grid instead?
    I don't see any difference ... that 1px is really one pixel

    Comment

    • complete
      New Member
      • Aug 2006
      • 11

      #3
      It had to do with screen resolution.
      I found "Snap To Pixel" commnds that worked

      Comment

      Working...