【发布时间】:2013-08-31 07:53:44
【问题描述】:
我是 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 个这样的日历)。
我的问题是:
Calendar 控件是否因为某种设计而变慢 - 要么是糟糕的设计,要么只是不适合这种用途,还是因为它试图显示大量数据/控件/信息而变慢?
如果我费心创建自己的控件,假设我使用了一个好的设计(欢迎提出一般想法),它会不会快很多,或者这只是 WPF 的“典型”?
我可以做些什么来加快默认日历控件的使用速度?
【问题讨论】:
-
您是第一次测量还是总是需要 5 秒?
-
尝试测试 exe,而不是 Visual Studio 调试器。
-
总是需要 5 秒,即使我直接运行 EXE,而不是从 IDE 运行。我的电脑不是很快.. 但它可以很好地处理 VS 2010,所以我希望这个小例子很快。
-
Calendar 控件是一个本机控件,而且是一个复杂的控件。所以是的,它肯定不是最快的。这使您的屏幕非常糟糕。它甚至与您的最终目标相似吗?
-
trying to get an idea of just how much slower it might be- 与什么相比?到winforms? Please...
标签: c# wpf performance xaml calendar