将 "DynamicResource" 替换为 "StaticResource"

5 浏览
0 Comments

将 "DynamicResource" 替换为 "StaticResource"

为了实现我的应用程序,我使用了很多Blend3。当Blend3想要将一个资源链接到另一个资源时,它经常使用“DynamicResource”这种链接类型。据我理解(但我可能理解得不够好),只有当我想要在运行时修改链接时,“Dynamic”链接才有意义。在其他情况下,它们只会浪费更多的内存。我不想在运行时修改任何内容,那么问题是:是否有必要在我的整个应用程序中将“DynamicResource”替换为“StaticResource”?

谢谢!

Pileggi

0
0 Comments

Blend在设计时与DynamicResource更好地配合。根据http://blogs.msdn.com/b/unnir/archive/2009/03/31/blend-wpf-and-resource-references.aspx中的内容,以下是关键摘录:

“我应该使用StaticResource还是DynamicResource查找资源?”

Blend与动态资源查找更好地配合。

只要资源未位于App.xaml中或合并到App.xaml中,您可以使用静态资源查找。

人们对动态资源查找的性能问题提出了担忧(一分钱一分货)。

虽然这可能是正确的,但一个有趣的数据点是,Expression Blend源代码在我们自己的UI中大量使用了动态资源查找(当然,在那些资源永远不会更改的地方,或不可能使用动态资源扩展的地方,例如非依赖属性(non-DPs)的地方,我们也会使用静态资源查找)。

非常感谢!正如Ian Oakes在由John Bowen链接的帖子中所说,我在尝试在一个用户控件中用"StaticResource"替换"DynamicResource"时,在设计时(还有Visual Studio设计器)发现了一些错误。我决定保留Blend的XAML代码。

0