我使用 WPF 进行开发已经有好几个月了。这是一个很棒的框架,我能够做一些奇特、优雅的事情,而使用 WinForms 会困难得多。
但是,我确实有这样的感觉:对于没有任何特殊 UI 要求的普通“业务线”类型的应用程序,在 XAML 中编写 UI 代码仍然比在 WinForms 中拖放 UI 需要更长的时间.
例如,在 WinForms 中,我只需在表单上放置一个附加标签和一个附加文本框,然后安排所有内容(使用辅助线),直到看起来不错为止。在 WPF 中,我首先将现有标签和文本框的属性分解为样式,以便我可以重用它们;考虑最合适的布局元素,也许将一些停靠面板/堆栈面板重构为网格(或反之亦然);尝试不同的边距值等。虽然我在 WPF 方面有很多经验,但仍然需要很长时间。
我知道我可以忘记“干净的 XAML”并使用 Visual Studio 2008 中的 GUI 设计器(它将所有内容绝对定位在一个巨大的网格内),但我担心我会失去 XAML 的许多优势通过这样做来提供。
你有过类似的经历吗?如果是,您做了什么来加速日常 WPF 开发?
最佳答案
我为加快日常 WPF 开发所做的事情:
尽可能忽略外观和感觉。理想情况下,调整对齐方式和边距以及定义样式是我做的最后一件事。
在使用 Grid 之前使用 DockPanel,在使用 StackPanel 之前使用 Grid。
使用网格时,将所有内容设为星号。我稍后会回来解决这个问题,但在原型(prototype)设计过程中,清楚地了解网格实际有多少行和列是非常有帮助的。
在 Kaxaml 中制作原型(prototype),在 Expression Blend 中完成,在 Visual Studio 中进行测试。找出一种方法已经花费了很多时间,而且它仍然是一项正在进行的工作。但是 Kaxaml 非常适合快速了解 XAML 原型(prototype)的行为方式,而 Blend 非常适合制定视觉效果并将内容封装到用户控件和样式中。
使用 Blend 时,不要在画板中创建布局,而是在对象轮廓中创建布局。当我第一次开发 WPF UI 时,对象的层次结构比它在屏幕上的外观重要一百倍。我仍在学习如何做到这一点,而且一旦我足够擅长,我似乎就不再需要在 Kaxaml 中进行原型(prototype)设计了。
做尽可能小的事情。这需要大量的纪律。我有一个不错的大型复杂 XAML 文件,我决定需要编辑控件的模板。要做的第一件事是创建一个包含该控件的小型 XAML 文件,然后在其中编辑控件模板。 原位这样工作的诱惑很大,因为只需右键单击即可编辑控件模板。不要这样做。
甚至不用考虑我是否应该为我的小型一次性应用程序开发一个 View 模型。是的,我应该这样做。
学习混合。真的真的要好好学习一下了解所选对象周围的所有小图标的含义,并注意它们。 (这里有一个捷径:我没有在那件事上设置边距,但 Blend 做到了。这可能是我 30% 的“Blend 现在到底在做什么?”问题的答案。)即使我 知道手动编辑 XAML 会更快。这又是一个纪律问题,抵制现在就完成它的诱惑,这样我就可以提高我以后完成更多工作的能力。
关于wpf - 如何加快WPF开发速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086400/