問題タブ [inkcanvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
500 参照

wpf - WPF InkCanvas:インクモードで、children_mousedown、children_mouseupイベントを起動できますか?

InkCanvas、私はいくつかUIElementの を子供として持っています。

UIElementなどuielement_mousedownのイベントがあります。uielement_mouseup

インクキャンバス インク モードの場合uielement_mousedownuielement_mouseupイベントを発生させることはできますか?

0 投票する
2 に答える
3807 参照

wpf - WPFのInkCanvasにイベントを手動で送信するにはどうすればよいですか?

InkCanvasが受信するイベントを手動で送信するにはどうすればよいですか?

私がする必要があるのは、InkCanvasのモードをインクモードに設定してから、仮想イベントをInkCanvasに送信して、ユーザーが実際のマウスを使用しているかのように描画動作を取得することです。

ありがとう

0 投票する
1 に答える
538 参照

wpf - 複数のストロークがあると InkCanvas が遅くなる

アプリケーションのようなペイントを作成するために InkCanvas を使用しています。キャンバスに複数のストロークを描画するために使用すると、動作が非常に遅くなります。

私は次のように非常に優れた構成のマシンを持っています:Intel(R) Core(TM) 2 Quad CPU Q6600 @ 2.40GHz (4CPUs),~2.4GHz and 2GB RAM.

10000 千ストロークを超えると、メモリ使用量が 500 MB に達し、CPU の描画と消去中にクロス 30 が使用されます。通常のサンプルでも同じ結果が得られます。ウィンドウのサイズ変更も非常に遅くなります。InkCanvasベクターベースの描画アプリケーションを作成する必要があり、WPF がそれを提供しているため、選択しました。

この背後にある理由は何ですか? ペイントのようなアプリケーションには InkCanvas を使用する必要がありますか? はいの場合、この問題にどのように取り組むべきですか?

0 投票する
2 に答える
914 参照

c# - 2つのInkCanvas-es図面を同期する方法は?

リモートホストでWPFInkCanvasの描画を表示するアプリケーションを開発しようとしています。基本的に、ローカルInkCanvasを複数のリモートホストと同期します。私はイベントを購読しStrokesChangedました:

そしてハンドラー。

新しい曲線を描画しているとき、イベントは1回だけ呼び出されます。リモートホストは、を呼び出すことによってそれを正しく描画しthis.RemoteInkCanvas.Strokes.Add(addedStrokes)ます。

イベントを介してカーブを消去しているときInkCanvasEditingMode.EraseByStrokeも一度呼び出され、リモートホストはthis.RemoteInkCanvas.Strokes.Remove(removedStrokes)正常に使用します。

ここに問題があります!

this.DrawingCanvas.EditingModeの場合、InkCanvasEditingMode.EraseByPointイベントは1回呼び出されますが、2つのコレクション(追加と削除)があります。これにより、リモートホストが異常になります。ストロークを消去するリモートホストコードは次のとおりです。

例外は常にキャッチされていることに注意してください。

ここでの一般的な質問:コレクション内で同じストローク/ポイントを見つけて、それに応じてそれらを削除するにはどうすればよいですか?

0 投票する
1 に答える
542 参照

wpf - InkCanvas でストロークを非表示にする方法

私はこのフォーラムにまったく慣れていませんが、まだ WPF の初心者です。

インクキャンバスのストロークをアニメーション化する必要があるプロジェクトに取り組んでいます。必要なアニメーションの 1 つに「消える」があります。ボタンをクリックすると、選択したストロークが徐々に消えていきますが、アニメーションの最後に表示されます。

ストロークの不透明度プロパティがないので、ストーリーボードと一緒に ColorAnimation クラスを使用してみました。ストロークを自分自身または名前を使用してターゲットにできないため、このコードを機能させることができませんでした。

現在、ストロークの色を背景の色に徐々に変更し、最後に初期値にリセットすることで、このシステムを実装することを考えています。これはコストのかかるループですが、他にアイデアはありません。

他に解決策があれば教えていただけると幸いです。

前もって感謝します。

編集:同じプロジェクトの他の部分を扱っていたため、コメントには答えていません。

DrawingAttributes に格納されているアルファ値を使用しようとしましたが、変数ではないため値を変更できません。同じことが RGB 値にも当てはまります。ストロークをループで消す方法がわかりません。私はすでにプロジェクトのほとんどを実装しているので、ゆっくりとそれらを消すために何かが必要です. 以下に、ストローク自体を変更してアニメーション化する例を示します。

そして別のクラスでは、

このようにディスパッチャーを渡すのは健康的ではないことはわかっていますが、今はそれで十分です。

よろしくお願いします。

0 投票する
1 に答える
2691 参照

wpf - Path オブジェクトから InkCanvas Stroke をプログラムで作成する

InkAnalyser を使用して手書き認識用に、スキャンした手書きの素材を InkCanvas に変換しようとしています。XAML で利用できる手書きの資料を既に持っています。

このパス (アルファベット t の境界形状) を .XAML ファイルに物理的に保存しています。

Path の XAML を読み取り、次のように MemoryStream オブジェクトmsから Path オブジェクトにロードします。

V という名前の InkCanvas があります。プログラムで myPath オブジェクトからストローク データを作成し、それを InkCanvas に追加したいと考えています。

注: myPath を UI 要素として InkCanvas V の子に追加したくありません。

私はこれを試しました: http://code.msdn.microsoft.com/windowsdesktop/A-Coordinate-supported-03e4f1b7は、座標軸を InkCanvas に描画する方法を説明する MSDN の記事です。彼は軸部分を DrawingContext オブジェクトに描画することを説明しています。

しかし、彼は、この DrawingContext オブジェクトを介して実際の InkCanvas オブジェクトにこれらの描画を実際にロードする方法については説明していません。まさにそこに助けが必要です。

0 投票する
1 に答える
586 参照

wpf - InkCanvas コントロール テンプレート

InkCanvas の InkPresenter を移動して、InkCanvas の Children よりも低い ZIndex を取得しようとしています。

つまり、InkCanvas に Children として追加された画像とユーザー コントロールの下に表示されるように、Ink を移動したいと考えています。

これを実現するために InkCanvas のコントロール テンプレートを編集する方法があるかどうか疑問に思っていましたか? 私はこのタスクを達成することに完全に失敗しました。

もともと、私は InkCanvas を 1 つのレイヤーとして使用し、子を InkCanvas の上にある Canvas コントロールに配置していました。ただし、子とストロークを一緒に選択できるようにしたい... InkCanvas にはこれが組み込まれているため、このような 2 つのコントロールを使用しないことを望んでいました。

ありがとう。

-フリニー

0 投票する
1 に答える
1160 参照

c# - マウスではなく指(タッチスクリーン)でInkCanvasにペイントする-MouseClickの代わりにmouseMove

Wpfウィンドウ(c#)でInkCanvasを使用しています。このキャンバスは、マウスをキャンバスにドラッグし、マウスをクリックして好きなものを描画しているときに機能します。

これをタッチスクリーンに載せるつもりです。私が理解しているように、画面上のタッチ(指またはペン)は、マウスクリックではなくマウス移動として機能するため、何もペイントされません。

どうすればこれを達成できますか?

0 投票する
1 に答える
1613 参照

c# - InkCanvas の MouseLeftButtonDown イベント

こんにちは、なぜうまくいかないのかわかりません。このイベントは InkCanvas では使用できないようです。

XAML

コードビハインド

0 投票する
3 に答える
3354 参照

c# - InkCanvas でのポリゴンの選択

inkCanvas にポリゴンを描画するアプリケーションがあります。描画されたポリゴンの 1 つをクリックすると、編集モードになり、塗りつぶしなどのこのプロパティの一部を変更できる機能を追加したいと思います。

私はこのコードを書きましたが、インクキャンバスの左上からポリゴンの最後までのすべての領域を選択しますが、必要なのはポリゴン領域だけです。

Xaml:

コードビハインド

編集: コードを編集しました。最初のサンプルは少し一般的すぎました。ポリゴンの選択はこんな感じですが、ポリゴンの領域だけを選択したいです。

例