問題タブ [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.
wpf - WPF InkCanvas:インクモードで、children_mousedown、children_mouseupイベントを起動できますか?
でInkCanvas
、私はいくつかUIElement
の を子供として持っています。
UIElement
などuielement_mousedown
のイベントがあります。uielement_mouseup
インクキャンバス インク モードの場合uielement_mousedown
、uielement_mouseup
イベントを発生させることはできますか?
wpf - WPFのInkCanvasにイベントを手動で送信するにはどうすればよいですか?
InkCanvasが受信するイベントを手動で送信するにはどうすればよいですか?
私がする必要があるのは、InkCanvasのモードをインクモードに設定してから、仮想イベントをInkCanvasに送信して、ユーザーが実際のマウスを使用しているかのように描画動作を取得することです。
ありがとう
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 を使用する必要がありますか? はいの場合、この問題にどのように取り組むべきですか?
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つのコレクション(追加と削除)があります。これにより、リモートホストが異常になります。ストロークを消去するリモートホストコードは次のとおりです。
例外は常にキャッチされていることに注意してください。
ここでの一般的な質問:コレクション内で同じストローク/ポイントを見つけて、それに応じてそれらを削除するにはどうすればよいですか?
wpf - InkCanvas でストロークを非表示にする方法
私はこのフォーラムにまったく慣れていませんが、まだ WPF の初心者です。
インクキャンバスのストロークをアニメーション化する必要があるプロジェクトに取り組んでいます。必要なアニメーションの 1 つに「消える」があります。ボタンをクリックすると、選択したストロークが徐々に消えていきますが、アニメーションの最後に表示されます。
ストロークの不透明度プロパティがないので、ストーリーボードと一緒に ColorAnimation クラスを使用してみました。ストロークを自分自身または名前を使用してターゲットにできないため、このコードを機能させることができませんでした。
現在、ストロークの色を背景の色に徐々に変更し、最後に初期値にリセットすることで、このシステムを実装することを考えています。これはコストのかかるループですが、他にアイデアはありません。
他に解決策があれば教えていただけると幸いです。
前もって感謝します。
編集:同じプロジェクトの他の部分を扱っていたため、コメントには答えていません。
DrawingAttributes に格納されているアルファ値を使用しようとしましたが、変数ではないため値を変更できません。同じことが RGB 値にも当てはまります。ストロークをループで消す方法がわかりません。私はすでにプロジェクトのほとんどを実装しているので、ゆっくりとそれらを消すために何かが必要です. 以下に、ストローク自体を変更してアニメーション化する例を示します。
そして別のクラスでは、
このようにディスパッチャーを渡すのは健康的ではないことはわかっていますが、今はそれで十分です。
よろしくお願いします。
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 オブジェクトにこれらの描画を実際にロードする方法については説明していません。まさにそこに助けが必要です。
wpf - InkCanvas コントロール テンプレート
InkCanvas の InkPresenter を移動して、InkCanvas の Children よりも低い ZIndex を取得しようとしています。
つまり、InkCanvas に Children として追加された画像とユーザー コントロールの下に表示されるように、Ink を移動したいと考えています。
これを実現するために InkCanvas のコントロール テンプレートを編集する方法があるかどうか疑問に思っていましたか? 私はこのタスクを達成することに完全に失敗しました。
もともと、私は InkCanvas を 1 つのレイヤーとして使用し、子を InkCanvas の上にある Canvas コントロールに配置していました。ただし、子とストロークを一緒に選択できるようにしたい... InkCanvas にはこれが組み込まれているため、このような 2 つのコントロールを使用しないことを望んでいました。
ありがとう。
-フリニー
c# - マウスではなく指(タッチスクリーン)でInkCanvasにペイントする-MouseClickの代わりにmouseMove
Wpfウィンドウ(c#)でInkCanvasを使用しています。このキャンバスは、マウスをキャンバスにドラッグし、マウスをクリックして好きなものを描画しているときに機能します。
これをタッチスクリーンに載せるつもりです。私が理解しているように、画面上のタッチ(指またはペン)は、マウスクリックではなくマウス移動として機能するため、何もペイントされません。
どうすればこれを達成できますか?
c# - InkCanvas の MouseLeftButtonDown イベント
こんにちは、なぜうまくいかないのかわかりません。このイベントは InkCanvas では使用できないようです。
XAML
コードビハインド
c# - InkCanvas でのポリゴンの選択
inkCanvas にポリゴンを描画するアプリケーションがあります。描画されたポリゴンの 1 つをクリックすると、編集モードになり、塗りつぶしなどのこのプロパティの一部を変更できる機能を追加したいと思います。
私はこのコードを書きましたが、インクキャンバスの左上からポリゴンの最後までのすべての領域を選択しますが、必要なのはポリゴン領域だけです。
Xaml:
コードビハインド
編集: コードを編集しました。最初のサンプルは少し一般的すぎました。ポリゴンの選択はこんな感じですが、ポリゴンの領域だけを選択したいです。