私はWPFが初めてで、どれだけ遅くなるかを理解しようとしています。Visual Studio 2010 (.NET 4) で新しい WPF アプリを開始し、次の XAML を作成しました。
<Window x:Class="CalendarTest1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="800" Width="1000">
<WrapPanel>
<Calendar />
<Calendar />
<Calendar />
...repeats for a total of 25 calendar objects...
</WrapPanel>
</Window>
アプリケーションを実行すると、IDE であるかどうかに関係なく、ウィンドウが開くまでに 5 秒かかります。開くと、(サイズを変更すると)すばやく再描画され、すべてがきびきびと見えます。
私の PC は最速ではありません: AMD デュアル コア 2.3GHz、2GB RAM、XP 32 ビット OS、オンボード ビデオ。
カレンダーの代わりに 25 個のボタンを配置でき、1 秒未満で読み込まれます。
次のように、MS Outlook カレンダーの日ビューで小さな月のカレンダーのようなものを作成しようとしています。
したがって、WrapPanel を使用して、サイズ変更時に Calendar コントロールを追加/削除できると考えていました。25 は必要ないかもしれませんが、9 または 12 であっても、思ったよりも遅くなります (このような 18 のカレンダーを 1 秒未満で表示する従来の Win32 アプリがあります)。
私の質問は次のとおりです。
カレンダー コントロールが遅いのは特定の設計が原因ですか? 設計が悪いのか、単にこの用途向けに設計されていないのか、それとも大量のデータ/コントロール/情報を表示しようとしているために単に遅いのでしょうか?
独自のコントロールを作成するのに苦労した場合、良いデザインを使用すると仮定すると (一般的なアイデアを歓迎します)、はるかに高速になる可能性がありますか、それとも WPF の「典型的な」ものですか?
この用途でデフォルトの Calendar コントロールを高速化するためにできることはありますか?