为什么WPF中没有可视继承?

时间:2009-04-03 14:53:18

标签: wpf inheritance

在Windows窗体中,有时会有一个窗口从另一个窗口继承。但在WPF中,这是不允许的。为什么WPF窗口没有可视继承?

3 个答案:

答案 0 :(得分:5)

WPF不支持可视继承的原因是由于表单设计是通过标记(.xaml)实现的,而不是使用代码隐藏生成布局的winforms。代码隐藏是可扩展的,而标记则不是。 Web表单也是如此。 asp.net中的母版页提供了准视觉继承。因此,这是一种权衡,标记提供了清晰的布局和数据分离的好处,而代码隐藏提供了可视化的可扩展性。这有点遗憾,因为视觉可扩展性在GUI中创建一致性以及非常快速的开发方面非常有效。嗯,似乎耀斑比功能需求更多。 WPF还可以......

答案 1 :(得分:2)

WPF故意与Windows Forms非常不同。可组合性模型不是基于Windows,而是基于Dependency ObjectVisualUIElement等类。您还可以使用控件模板,样式,数据绑定和其他技术来显着修改现有事物的行为。

我鼓励你做实验!使用

进行原型设计非常容易

答案 2 :(得分:2)

在WPF中,我们付出了巨大努力将视觉与逻辑分开。因此,您可以根据需要自由地使用UI。包括窗户在内的所有控件都是“不露面”的。您可以通过模板和样式提供自己的外观。提供了默认的视觉样式,使一切看起来像您期望的那样,但您不必使用它。