Wpf 显示完整日历的最快方式

Wpf 显示完整日历的最快方式,wpf,Wpf,我需要在屏幕上显示一个完整的日历(12个月,31天/月)。目前,我使用的是一个12列的网格,每列都有一个“月”堆栈面板。 每个“月”stackpanel包含31(或更少)天的表示。 每天表示法由一个DockPanel组成,其中嵌入三个控件: 显示日期字母的文本块 显示日数的文本块 显示短消息的文本块 当然,当我尝试调整窗口大小时,性能会受到影响 有没有一个有用的技巧可以快速显示多个文本块?您有没有看一下?如果您运行的是.NET 3.5或更早版本,则它是WPF工具包的一部分,并作为.NET 4

我需要在屏幕上显示一个完整的日历(12个月,31天/月)。目前,我使用的是一个12列的网格,每列都有一个“月”堆栈面板。
每个“月”stackpanel包含31(或更少)天的表示。
每天表示法由一个DockPanel组成,其中嵌入三个控件:

  • 显示日期字母的文本块
  • 显示日数的文本块
  • 显示短消息的文本块
当然,当我尝试调整窗口大小时,性能会受到影响


有没有一个有用的技巧可以快速显示多个文本块?

您有没有看一下?如果您运行的是.NET 3.5或更早版本,则它是WPF工具包的一部分,并作为.NET 4的一部分包含在其中。您是否查看了?如果您运行的是.NET 3.5或更早版本,那么它就是WPF工具包的一部分,并作为.NET 4的一部分包含在其中。实际上,我正试图从头开始构建日历UI,以便控制其中的任何部分。我使用了一个12列31行的网格作为ItemsControl的ItemsPanel。根据绑定到ItemsControl的数据(day collection),网格将DataTemplate放置在右侧的列/行对中。

实际上,我正试图从头开始构建日历UI,以便控制其中的任何部分。我使用了一个12列31行的网格作为ItemsControl的ItemsPanel。根据绑定到ItemsControl的数据(日集合),网格将DataTemplate放置在右侧的列/行对中。

最快的方法是将FrameworkElement子类化(或者甚至可视化),覆盖OnRender并在代码中绘制整个日历


但是你必须放弃模板提供给你的所有功能,先阅读。

最快的方法是将FrameworkElement子类化(甚至是可视化),覆盖OnRender并用代码绘制整个日历


但是,你必须放弃模板提供给你的所有优秀功能,请先阅读。

@Jesus-我不是100%确定,这就是为什么我忽略了这一点。我会更新答案的。@天哪-我不是100%确定,这就是为什么我遗漏了这一点。我会更新答案的。谢谢你的回答。我知道这篇文章,并且是DrawingVisuals的超级粉丝:),但我需要事件、模板和动画支持,我只有372个控件要显示,而不是数千个。我所做的是构建一个“DelayedGrid”控件,该控件仅在上次调用发生在0.5秒之前时调用ArrangeOverrides方法。这允许一个响应性很强的UI,即使用户想要调整所有内容。谢谢你的回答。我知道这篇文章,并且是DrawingVisuals的超级粉丝:),但我需要事件、模板和动画支持,我只有372个控件要显示,而不是数千个。我所做的是构建一个“DelayedGrid”控件,该控件仅在上次调用发生在0.5秒之前时调用ArrangeOverrides方法。即使用户想要调整所有内容的大小,这也允许一个响应速度相当快的UI。