私はキャンバスから継承するカスタムコントロールを構築しました。 ArrangeOverrideメソッドを使用して、すべての子要素にドラッグドロップ機能を追加します。これには、50ピクセルのグリッドスナップと、要素位置の維持などのその他のカスタム動作が含まれます。カスタムWPFキャンバスコントロール内に点のグリッドを描画できますか?
私が実際にやってみたいのは、ドラッグしている間、スナップポイントがどこにあるかを見ることができるように、背景にドットまたは十字のグリッドを表示するようにこれを拡張することです。
ただし、パネルであるためコントロールのテンプレートを変更できません。キャンバスを含むカスタムコントロールを作成し、IEnumerableアイテムのソースを渡してみましたが、コレクションの変更を取り上げるのが難しくなりました。コレクションにはモデルとフレームワーク要素が含まれていませんでした。
私はどちらのパスを取るべきかわかりません。私が見落としてしまった非常に単純な解決策があるかもしれないかのように感じるので、私は提案に公開しています!
ありがとうございます。
ありがとうArie - 本当に役立ちます。私はちょうどカスタムコントロールのOnRenderメソッドをオーバーライドし、グリッドを追加しました。ユーザーが積極的にドラッグしている間、どのようにグリッドを表示することができますか?そのレンダリングメソッドは最初に呼び出されるだけで、コントロールのサイズを変更すると呼び出されます。理想的には、それを表示して非表示にすることは素晴らしいことです。 –
決して気にしないでください。私はそれをかなり微妙にしました。また、base.OnRender(drawContext)を最後に追加する必要がありました。そうでないと、ドラッグ/グリッドのスナップのパフォーマンスが何らかの理由で悪くなりました。コードサンプルについてもう一度おねがいします。 –