私は wpf でアプリケーションのようなペイントに取り組んでいます。ユーザーが画像やプレーン サーフェスに描画を追加できるようにしたいです。また、線、楕円、長方形などの基本的な形状を描画したいと考えています。フリーハンドで描画できるインクキャンバスですが、ペイントのように形を描くことはできません。
4 に答える
InkCanvas には 2 種類のコレクションがあります。
StylusPoints で構成され、DrawingAttributes によって定義されるストローク。それが、マウスやスタイラスで描かれたインクです。
もう 1 つは Children で、FrameworkElements を含めることができます。たとえば、Ellipse は Shape であり、FrameworkElement です。
yourCanvas.Children.Add(ellipse) をいじってみて、どうなるか見てみましょう。定義済みの形状も使用したいという理由だけで、InkCanvas を敬遠する理由はまったくありません。
ただし、InkCanvas の弟である InkPresenter には Children プロパティがないことに注意してください。そしてSilverlightにはそれしかありません。
ここhttp://ciintelligence.blogspot.com/2011/07/silverlight-drawing-tool-silver-draw.html で、追加機能を備えたSilverDrawコントロールを改善したより良いコントロールを見つけることができます。
特徴は次のとおりです。*基本的な形を描くことができ、フリーハンドの鉛筆を使用して描くこともできます。※図面を消去できます。*描画を元に戻したりやり直したりできます。*サーバー側でjpegとして図面を保存できます。
WPF は、図形を描画できる事前構築済みのメソッドを含む Shape クラスを提供します。インクキャンバスを使用せず、代わりにキャンバスに直接描画します。