在WPF中自定義你的繪製(一)

2021-09-05 16:43:19 字數 1090 閱讀 8058

在wpf中自定義你的繪製(一)

周銀輝在傳統的windows窗體程式設計中,如果我們需要打造一些比較個性化的控制項,那麼我們常常需要自定義控制項的繪製(重寫onpaint等),即需要經常用到graphics物件。而在wpf中,我們可以使用xaml輕鬆編寫出很有特色的介面元素,似乎與以前的以前利用graphics物件手寫**繪製控制項的日子越來越遠了。其實在wpf中,如果我們需要低階別的自定義繪製同樣是可以的,那麼我們就需要乙個名drawingcontext的類。與onpaint方法相對應的是onrender方法(當然,你也可以在其他地方進行繪製)。

在uielement.onrender( drawingcontext drawingcontext )方法中,直接提供了drawingcontext 物件,我們可以利用它像以前的graphics物件一樣進行各式各樣的繪製操作,值得注意的是一下幾點:

1,在我們的**中,我們不能直接呼叫onrender方法,它將被系統非同步呼叫進行布局和繪製(這與win32不同)。

2,我們不能直接建立drawingcontext例項,但我們可以利用 drawinggroup.open 和drawingvisual.renderopen來得到。    

3,我們的繪製不是實時的,事實上我們的繪製將被儲存到乙個繪製指令集中被圖形 系統在某個時候呼叫。   

system;

using

system.collections.generic;

using

system.text;

using

system.windows.controls;

using

system.windows.media;

using

system.windows;

using

system.globalization;

namespace

custompaint

效果如下:

在《在wpf中自定義你的繪製(二)》中我們將更深入地闡述在wpf中如何進行自定義繪製,謝謝。

在WPF中自定義你的繪製(五)

在wpf中自定義你的繪製 五 周銀輝將我們的繪製轉變為畫刷 wpf中的畫刷比gdi 中要強大得多,除了常用的實心畫刷 漸變畫刷外,還支援更多的平鋪畫刷,這包括drawingbrush imagebrush visualbrush,其中drawingbrush使得我們可以將自定義的繪製用於任何可以使用...

在WPF中自定義你的繪製(五)

在wpf中自定義你的繪製 五 周銀輝將我們的繪製轉變為畫刷 wpf中的畫刷比gdi 中要強大得多,除了常用的實心畫刷 漸變畫刷外,還支援更多的平鋪畫刷,這包括drawingbrush imagebrush visualbrush,其中drawingbrush使得我們可以將自定義的繪製用於任何可以使用...

在WPF中自定義你的繪製(三)

原文 在wpf中自定義你的繪製 三 在wpf中自定義你的繪製 三 周銀輝圖形合併 有時候我們需要將多個圖形合併成乙個然後進行繪製,比如將乙個圓形與乙個矩形進行合併等.在wpf的自定義繪製中,有三種方法可以做到,分別是 1 利用geometrygroup物件 2 利用combinedgeometry物...