2

WPF で UserControl またはビューを作成する必要があります。これは、カレンダーのように、ヘッダーに日を表示し、ユーザーのリストを垂直に表示できます。各ユーザーについては、グリッド内に配置された計画バーのように表示できます。 、日の下に、プランにかかる日数が表示されます。これは、Telerik から入手できるガント ビューや DevExpress のようなものですが、有料のソース/コントロール/ツールキットを使用することは許可されていません。問題は、開始方法、使用する必要があるレイアウト、コントロールなどがわからないことです。

ここみたいに: ここに画像の説明を入力

ListView を垂直に作成し、ItemsSource をすべてのユーザーに対して水平に作成しようとしましたが、そのような場合、ユーザーがその期間に何も計画していなくても、すべての行をバインドする必要があるため、無駄なバインドが多すぎます。このソリューションは、バインドする要素の数を変更する場合を除いて、画面サイズに合わせて調整することもできません。

データが存在する場所にのみ、画像と同様の方法で何かを表示する必要があります。これは、計画が表示されるヘッダーとスイムレーンを含むコンテナー コントロールが必要であることを意味します。

また、幅は調整可能である必要があるため、ユーザーの画面が増えるほど、水平方向に表示される日数が増えます。

どうすればそれを作成できますか? どのコントロールを使用する必要がありますか?

次の例のような答えを期待しています: コンテナー コントロール: ListView 水平スイムレーン: GridView、またはキャンバス バー: シンプルな四角形

前もって感謝します!

編集

タイムライン プロジェクトを見つけました。これはオープンソースであり、良い例があります。 CodePlex タイムライン プロジェクト

4

2 に答える 2

5

サードパーティのコントロールについて再考します。これを堅牢に構築すると、購入するよりもはるかに費用がかかります (時間あたりのコストによって異なります)。

これを自分で構築したい場合は、次のようなものが必要になります。

  • コンテンツの水平および垂直スクロール
  • 行と列のヘッダーがそれぞれ垂直方向と水平方向にスクロールし、前のアイテムと同期します。
  • アイテム テンプレート、コネクタ テンプレート
  • ブロック (データ階層) 間の依存関係管理の形式。
  • コネクタのルーティング。複数のスイムレーンを横断するため、別のレイヤーに配置する必要があります。また、複数の矢印をマージする必要があります。

要件は非常に厳しく、これには多くのコードが必要です。

于 2013-11-14T09:46:57.910 に答える
4

Bas Brekelmans上記の2番目の回答をしたいと思います。スクリーンショットに表示されているすべてのもの (依存関係、タイムラインのズーム、進行状況、サイズ変更など) を合理的な時間/コストで構築できる方法はありません。すでに完了しているのに、なぜ車輪を再発明するのですか?

RadiantQ の WPF Ganttは、さまざまな行の高さ、休日など、上記のすべてを実装できる非常に包括的なパッケージです。Silverlightベースですが、WPF Gantt に似た機能を備えたオンライン デモをご覧ください。

もちろん、ダウンロードできる試用版があります。

于 2013-11-14T14:14:51.707 に答える