Как рисовать линии в IronPython с помощью Winforms?

Я начал работать с IronPython в #Develop, и мне нравится интеграция с IronPython и Windows Forms, она позволяет создавать графический интерфейс, как в Visual Basic или C#.

У меня простой вопрос: как нарисовать линию в PictureBox при нажатии? Я нашел этот код для рисования линий, но я знаю, как адаптировать его к PictureBox.

Вот код, который я нашел: http://www.zetcode.com/tutorials/ironpythontutorial/painting/

Итак, что я должен указать в «def PictureBox1Click (self, sender, e):»?

Любая помощь или руководство будут оценены по достоинству.


person Checo R    schedule 11.11.2012    source источник


Ответы (1)


Вот простой пример, который рисует линию в поле изображения при нажатии на него.

import System.Drawing
import System.Windows.Forms

from System.Drawing import *
from System.Windows.Forms import *

class MainForm(Form):
  def __init__(self):
    self.InitializeComponent()
    self.pen = System.Drawing.Pen(System.Drawing.Color.Black);

  def InitializeComponent(self):
    self._pictureBox1 = System.Windows.Forms.PictureBox()
    self._pictureBox1.BeginInit()
    self.SuspendLayout()
    # 
    # pictureBox1
    # 
    self._pictureBox1.Location = System.Drawing.Point(13, 13)
    self._pictureBox1.Name = "pictureBox1"
    self._pictureBox1.Size = System.Drawing.Size(259, 237)
    self._pictureBox1.TabIndex = 0
    self._pictureBox1.TabStop = False
    self._pictureBox1.Click += self.PictureBox1Click
    # 
    # MainForm
    # 
    self.ClientSize = System.Drawing.Size(284, 262)
    self.Controls.Add(self._pictureBox1)
    self.Name = "MainForm"
    self.Text = "PyWinForm"
    self._pictureBox1.EndInit()
    self.ResumeLayout(False)


  def PictureBox1Click(self, sender, e):
    g = self._pictureBox1.CreateGraphics()
    g.DrawLine(self.pen, 10, 10, 400, 200)
person Matt Ward    schedule 15.11.2012