2015-08-15 33 views
0

在Python中,使用tkinter模塊進行繪製時,可以保留對形狀的引用,然後使用引用操作該形狀。GDI + - 對形狀的引用

在使用GDI +的.NET中有沒有類似的東西?什麼是一些解決方法?

from tkinter import * 
tk = Tk() 
canvas = Canvas(tk, width=500, height=500) 
canvas.pack() 
id = canvas.create_polygon(10, 10, 30, 60, 60, 10, fill='blue') # returns reference 
count = 0 
def movetriangle(event): 
     canvas.move(id, 5, 3) 
     global count 
     if count == 0: 
       canvas.itemconfig(id, fill='red') 
       count = 1 
     elif count == 1: 
       canvas.itemconfig(id, fill='green') 
       count = 2 
     else: 
       canvas.itemconfig(id, fill='blue') 
       count = 0 
canvas.bind_all('<KeyPress-Return>', movetriangle) 

回答

1

GDI +是一個光柵化器(通過將它們光柵化爲位圖來執行繪製命令)。你正在尋找的是(持久性)矢量圖形庫。最好的.NET匹配可能是WPF

例如,Polygon類看起來像你正在尋找。

SVG也廣泛用於各種平臺。

+0

然後Winforms是不可能的? – mcu

+0

是的,但你需要第三方庫。例如,在我的答案中查看SVG鏈接,但也有其他鏈接。 – Krumelur

+0

雖然我認爲在WPF中做起來會更容易,而且你會有更好的表現。你可以在Winford和WPF之間進行交互,看看WindowsFormsHost。 – Krumelur