我是 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 秒钟。一旦打开,它会快速重绘(当我调整它的大小时),一切看起来都很活泼。
我的电脑不是最快的:AMD 双核 2.3GHz、2GB RAM、XP 32 位操作系统、板载视频。
我可以放置 25 个按钮,而不是日历,并且加载时间不到 1 秒。
我正在尝试在 MS Outlook 日历的日视图中创建类似于小月历的内容,如下所示:
所以我想我可以使用 WrapPanel 并在调整大小时添加/删除日历控件。我可能不需要 25,但即使是 9 或 12,它也比我想象的要慢(我有一个旧版 Win32 应用程序,它在不到 1 秒的时间内显示 18 个这样的日历)。
我的问题是:
日历控件是否因为某种设计而变慢——要么是一个糟糕的设计,要么只是不是为这种用途而设计的,还是因为它试图显示大量数据/控件/信息而变慢?
如果我麻烦地创建自己的控件,假设我使用了一个好的设计(欢迎一般想法),它会更快,还是这只是 WPF 的“典型”?
我可以做些什么来使默认的日历控件更快地用于这种用法?