3

こんにちは、C# WPF は初めてです。C# のフローチャート WPF プログラムがあります。プログラムは、オブジェクトとそれらの間の接続矢印を表示できます。例:

========           ========
|      |           |      |
| obj1 |  ------>  | obj2 |
========           ========

1 - オブジェクトを右クリックしたときに各オブジェクトに視覚機能を追加するにはどうすればよいですか? つまり、オブジェクトを右クリックしたときに、アプリケーションに属するそのプロパティを変更できるようにしたいと考えています。

2 - 上記のオブジェクトに関する関係情報を含むファイルを作成および生成するにはどうすればよいですか。つまり、obj1 は obj2 に流れます

あなたの考えを共有してくれてありがとう

4

4 に答える 4

3

1)マウスクリックイベントで使用するヒットテストコードを作成する必要があります。各オブジェクトの画面上の位置を確認して、マウスがクリックされたときにどのオブジェクトがポインタの「下」にあったかを判断する必要があります。そこから、実装する機能に適したコンテキストメニューを表示できます。

2)情報を保存して後でアプリで再度開く場合は、XMLまたはバイナリへの単純なシリアル化で問題ありません。ユーザーが読み取り可能なコンテンツを作成することを目的としている場合は、単純なcsvエクスポートを作成する必要があります。出力をより複雑にする必要がある場合は、カスタムシリアライザーを作成する必要があります。

より詳しい情報:

ヒットテストは、クリックされたオブジェクトを評価するための一般的な用語です。たとえば、DataGridViewをクリックすると、ヒットテストロジックによって、クリックされたセル/行/列がわかります。DataGridViewを含む多くのウィジェットクラスには、この情報を提供するオブジェクトを返すHitTestメソッドがあります。フローチャートツールが接続されたオブジェクトにカスタム描画を使用する場合は、クリック座標を使用して、フローチャートのどの要素がクリックされたかを判断する必要があります。

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.hittest.aspxには、DataGridViewのHitTestメソッドが記載されています。

http://www.codeproject.com/KB/list/CSharpHitTest.aspxは、ListViewのヒットテストロジックを実行するCodeProjectのサンプルプログラムです。

于 2010-09-28T16:58:59.430 に答える
2

1 - オブジェクトのマウス クリック イベントを処理し、必要なことをすべて行います。2 - オブジェクト グラフを XML またはバイナリ形式にシリアル化します。

于 2010-09-28T16:30:06.393 に答える
1

あなたのアプリケーションがどのように機能し、どのコントロールを使用したかはわかりませんが、あなたが言及した機能を備えたデザインを実装する次の記事を参照することをお勧めします -

http://flowpad.codeplex.com/

WPF ダイアグラム デザイナー

http://simulo.codeplex.com/

于 2010-09-29T06:25:33.607 に答える
0

Git のシンプルなライブラリhttps://gridwizard.wordpress.com/2015/03/25/simple-c-library-to-render-graph-to-flowchart

最初に Node.x/y と Canvas サイズ (与えられたオブジェクト グラフ) を計算し、次に HTML5 にレンダリングすることにより、フローチャートを生成するのに役立ちます。コード レンダーを WPF に適合させることができます (別のレンダーを追加するだけで、HTML5 レンダラーからコードを借りることができます)。

于 2015-04-11T19:19:37.480 に答える