WinFormでいくつかのカレンダータイプのコントロールを開発する必要があります。これらのカレンダーはすべて垂直です。概念は、カレンダーに各日(月ビュー)、時間(日ビュー)、または週(年ビュー)の列が含まれることです。月のビューのサンプル(かなり粗い)画像を添付しました。
これまでのところ、多くのパネルとラベルを備えたテーブルレイアウトパネルを使用して、これにかなりの亀裂がありました。これは機能しますが、面倒で読み込みが非常に遅くなります。それはまた、私が克服しようとした多くの問題を伴います。現在の様子のスクリーンショットを添付しました。
レンダリングの問題(よく知られている吃音の問題)に直面しました。これは、グリッドの構築中にグリッドを非表示にし、完成したら表示することで解決しました。また、スクリーンショットでわかるように、テーブルのサイズを正しく変更するのに問題がありました(列の数は月の日数によって異なります)。下の行がすべてのスペースを占めています。ご想像のとおり、これはすべて非常に厄介で、私にはかなりハッキーなようです。
問題を克服できるかどうかを確認するためにWPFを少し試しましたが、少し良くなるかもしれませんが、列と行のサイズに関する問題は同じようです。これらの問題を回避するために私が取ることができる他のアプローチはありますか、それとも弾丸を噛んでWPFに切り替えるのが最善ですか?テーブルを使用してHTMLでこれを行うのは非常に簡単な作業であるため、これは2倍イライラします。
私が抱えている問題を繰り返すと、次のようになります。
- 予想どおり、列のサイズが自動的に変更されません(最後の列はスペースを埋めるだけで、奇妙なUIが作成されます)
- 行は似ていますが、一番下の行がすべての空きスペースを占めています。
- 遅いレンダリング
- コントロールのサイズを変更するときは、グリッドを非表示にする必要があります。そうしないと、多くの途切れが発生します。
- テーブルレイアウトパネルのハッキーな性質
問題への最善のアプローチ方法について、ユーザーからのフィードバックに感謝します。