【发布时间】:2014-07-23 13:22:27
【问题描述】:
我正在开发新的 WPF/MVVM 项目,我看到几乎所有控件都是针对不同需求编写的,从文本框到树视图。所有都为了简单的需要而重写,例如,网格,堆栈面板控件被重写以在每个项目之间添加空间,并且文本框被重写以包含它的标签,以便它本身具有标签和文本输入。
我的问题:由于这种定制,我们会遇到任何严重的问题吗? 我已经看到对齐所有控件的问题,因此我会看到更多问题吗?
【问题讨论】:
-
当你说“重写”时,你的意思是“你有自定义代码来重新实现每个控件”还是“你有每个控件的自定义样式”?还是您只是说项目中有很多自定义控件,而您并没有真正“重写”现有控件?
-
我的意思是通过添加的属性或功能重新实现每个控件,并且重新设置控件的样式(我的意思是覆盖其控件模板)
-
开发时必须选择正确的控件。有些控件会考虑它们所在容器的对齐方式,有些则不会。有些有
HorizontalContentAlignment,有些只有HorizontalAlignment。如果要添加“XAML 属性”,则只需为该控件实现依赖项属性。 WPF 与 WinForms 完全不同,因此编写自定义控件并不经常发生。 -
NETscape,我同意你的观点,我也有同样的疑问,因为 WPF 提供了大部分属性。我的架构师给出的原因是,1. 这将有助于正确显示验证错误,2. 我们进行自己的对齐和样式设置。现在,我的问题是,它会对应用程序的整体性能产生什么影响。
-
@Senthilkumar:告诉你的架构师阅读更多关于样式和主题的信息。它提供了他正在寻找的东西。
标签: wpf mvvm wpf-controls