WYSIWYG视图创建的WPF设计器限制和规则摘要?

时间:2014-01-10 20:22:24

标签: c# wpf xaml design-time

对于WPF / Silverlight / XAML4Win8 / WP8 / whathaveyou,视觉效果是由(我相信)创建自定义视图(window / page / usercontrol / whathaveyou)派生自的基类实例创建的,然后事后应用你的XAML。

如果我没弄错,这意味着类型构造函数中的代码隐藏将丢失。有没有办法在视图本身中执行设计时对象创建逻辑?更重要的是,在网上有一个很好的总结,了解Cider / Blend设计师如何在设计时实际创建所见即所得的视图?我好像在某处回忆起一些文档(Expression Studio可能是文档吗?)但是我找不到它们。

2 个答案:

答案 0 :(得分:1)

http://msdn.microsoft.com/en-us/library/ff602274(v=vs.95).aspx

以上链接适用于Silverlight,但非常确定大多数(如果不是全部)也适用于WPF。

您可以实例化设计器DataContext。

    <Grid x:Name="LayoutRoot" Background="White" 
          d:DataContext="{d:DesignInstance Type=local:Customer}">

一个限制是它需要你有一个默认的构造函数。这是我找到解决它的答案。 How to use d:DesignInstance with types that don't have default constructor?

最好是将您编码的数据子类化,并让它进行任何必要的初始化。幸运的是,您定义的所有内容都纯粹是为了设计,并且对您在运行时实际使用的对象没有任何影响。

不幸的是,我没有其他问题的答案。

答案 1 :(得分:0)

你需要在构造函数中做什么样的东西?

你可以通过添加DependencyPropertyChanged挂钩的依赖关系或附加属性并在xaml中设置值来实现吗?

然后你仍然会让你的代码执行,但不是构造函数?