15

私の WPF アプリケーションには、いくつかの描画機能があります。Canvas を使用してマウス ジェスチャを手動で処理することでこれを解決し、描画されたストローク (InkPresenter にラップ) をこの Canvas に追加します。

Blend を使用すると、InkCanvasというものがあることに突然気付きました。Blend によると、これは「インク ストロークを受け取って表示する領域を定義する」コントロールです。、だから私がしていることに関連しているように聞こえます。しかし、プレーンなキャンバスを使用するとすべてがうまくいくようです..

そう; InkCanvas はプレーンな Canvas とどう違うのですか? なぜ代わりにこれを使用する必要があるのですか?

4

4 に答える 4

14

これらは、実際には 2 つの異なる目的を果たすことを目的としています。Canvasレイアウト用です。特に、絶対配置を使用してレイアウトをより正確に制御する場合。InkCanvasご存知のように、ストロークをキャプチャして表示するためのものです。

あなたがしていることは問題ありませんが、とりわけInkCanvas素晴らしい追加機能がいくつかEditModeあります。これは、 を使用して手作業で行わなければならない多くのことを記述する手間を省くためのものですCanvas。使用Canvasは、独自のアプローチのロールでInkCanvasあり、組み込みのアプローチの使用です。

于 2010-03-09T14:27:42.697 に答える
7

InkCanvas は、キャンバスに描画するためのマウス イベントを処理します。また、次の機能もあります。

  • セーブ/ロード
  • サイズ変更/スケール
  • テキストの後ろをハイライト
  • 消しゴムモード

http://www.kirupa.com/blend_wpf/inkcanvas_pg1.htm

于 2010-03-09T14:31:19.803 に答える
4

パフォーマンスが懸念される場合、実際のマウス イベントを使用した InkCanvas は、StylusPointCollection からストロークを作成するよりもはるかに高速ですが、StylusPointCollection に新しいポイントを追加する操作はコストがかかることがわかりました。

于 2011-09-04T13:05:20.083 に答える