Как сохранить количество строк внутри HatchBrush, несмотря на масштабирование Drawing2D.graphic?

Я хочу сделать редактор изображений. Изначально изображение будет уменьшено до размера экрана. Я пытаюсь создать прямоугольник и заполнить его цветом с помощью HatchBrush (Горизонтальная линия). В это время черный прямоугольник имеет две линии внутри.

Но если я нажму кнопку увеличения, прямоугольник автоматически увеличит количество строк. Теперь прямоугольник имеет три внутри.

          Private Sub pnlDrawArea_Paint(sender As Object, e As PaintEventArgs) Handles pnlDrawArea.Paint
       Dim mx As Matrix = New Matrix()
       mx.Scale(zoom, zoom, MatrixOrder.Append)
       e.Graphics.Transform = mx
       Draw(e.Graphics)
    End Sub

Нарисовать прямоугольник

          Public Sub Draw(ByVal g As Graphics)
       g.DrawImage(img, New Point(0, 0))

       Dim hb As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Horizontal, Color.Red)
       Dim rect As New Rectangle(ptStart.X, ptStart.Y, ptEnd.X - ptStart.X, ptEnd.Y - ptStart.Y)
       g.FillRectangle(hb, rect)
  End Sub

Увеличить/ Уменьшить

         Private Sub btnZoomIn_Click(sender As Object, e As EventArgs) Handles btnZoomIn.Click
       zoom += 0.01
       Me.pnlDrawArea.Invalidate()
   End Sub

   Private Sub btnZoomOut_Click(sender As Object, e As EventArgs) Handles btnZoomOut.Click
      zoom -= 0.01
      Me.pnlDrawArea.Invalidate()
   End Sub

Как сохранить количество строк внутри HatchBrush?

0 ответов

Другие вопросы по тегам