2009年10月25日 星期日

Silverlight的Ink機制

Silverlight一直以來就有所謂的Ink手寫功能,過去我很少提到這部分,最近有一位讀者問到操作的方式,因此一併在BLOG上介紹。

InkPresenter控制項是筆墨的關鍵,你可以透過InkPresenter的Strokes集合屬性,把一個或多個Stroke物件加入Strokes集合中,而Stroke物件的StylusPoints屬性所表達的就是一群連續的點,用來在畫面上呈現出各種線條。

而透過滑鼠的MouseMove事件,我們可以很輕易的取得滑鼠經過的每一個點,例如:


private void InkCanvas_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
//將每一點加入NewStroke
NewStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(InkPresenter1));
}
如此一來,我們就可以輕易的建立出可以手寫繪製的畫板了。

[測試範例] [完整範例程式碼下載]
當然,Ink機制也可以跟Multi-Touch配合,關於這部分在下一期的Run!PC當中會配合Multi-Touch一併介紹與說明,有興趣的讀者可以參考Run!PC 11月號。

沒有留言: