从Expression Blend 3返回Visual Studio时,我发现Blend已经为我的XAML添加了一个“d:LayoutOverrides”属性。在ASP.NET设计师的成长过程中,我自然不信任任何我不会打字的东西,所以一看到它就立即删除它们。
我知道“d:”属性只是设计师而且不会影响运行时,但任何人都可以提供任何有关此属性功能的信息以及为什么Blend如此坚持以至于我将它们全部放在我的标记上?
<Border d:LayoutOverrides="Height" />
答案 0 :(得分:31)
那就是Blend知道如何在设计模式下显示你的XAML。具体来说,如果你有一个流畅的布局来伸展以填充其容器,那么Blend就没有明确的方法来知道你的设计应该有多高; LayoutOverrides定义了。
当您(或运行Blend的其他人)手动调整设计图面中的元素大小时,会添加这些LayoutOverride设置条目。如果您在代码中看到它们(例如在Border元素中):
请注意,Blend的可忽略属性在编译时被删除,并且不会影响应用程序的性能。因此,虽然您可能希望删除它们以提高代码可读性,但它们不会影响应用程序的运行方式。
答案 1 :(得分:2)
d:LayoutOverrides
如果属性在运行时设置为固定值,但您想在设计时覆盖它,则可以使用d:LayoutOverrides属性。可以列出在设计时应忽略的所有属性,用分号分隔。