我是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中或不在IDE中打开窗口需要5秒钟。一旦打开,它的重绘速度很快(我调整大小时)而且一切都很流畅。
我的电脑不是最快的:AMD双核2.3GHz、2GB RAM、XP 32位操作系统,集成显卡。
我可以放置25个按钮代替日历,它加载时间不到1秒。
我正在尝试创建类似于MS Outlook日历中的日视图中的小月份日历,像这样:
所以我想我可以使用WrapPanel,在调整大小时添加/删除日历控件。我可能不需要25个,但即使是9或12,速度也比我想象的慢(我有一个遗留的Win32应用程序,显示18个这样的日历,不到1秒)。
我的问题是:
- 日历控件是否由于某种设计 -- 要么是错误的设计,要么只是未为此用法设计,或者仅仅因为它试图显示大量数据/控件/信息而变慢? - 如果我费心去创建自己的控件,假设我使用了一个好的设计(欢迎一般性的想法),它会快得多,还是这只是WPF的"典型"? - 是否有什么我可以做来使默认的日历控件对于这种用法更快?