WPF ControlTemplate如何

时间:2009-02-25 21:18:31

标签: wpf architecture controltemplates

我对WPF很新,大约4个小时新。我来自ASP.net和Masterpages。

我正在查看可用于模板窗口的控制模板示例,以便所有窗口看起来都一样。 Other post

有些人可以直接告诉我如何完成它或从头到尾示例代码吗?

第二部分:

ControlTemplate是构建WPF Windows客户端应用程序的最佳方式吗?构建WPF窗口应用程序的最佳实践是什么。

由于

1 个答案:

答案 0 :(得分:1)

构建WPF UI真的没有“最好”的方法。这完全取决于您的应用程序将具有的用户体验。

如果你想要一个非常类似网络的体验,你最好使用页面结构。否则,如果您有窗口,但想要一个公共标题,您可能只想为此创建一个控件模板。也许你需要单独的窗口,或者你只需​​要让网格面板的子部分根据状态改变内容......有不同的方法可以做一些或多或少适合你想要的客户体验类型的事情。 / p>

尽管有一些与使用MVC / MVVM设计模式相关的最佳实践,但没有一种“最佳”方式来设置和控制您的控件。我不认为WPF对WinForms来说对新手是友好的,但同时从长远来看它似乎更强大。可能对你有帮助的是一些基本的主题:

  • 样式:这些主要是对基本控件和元素的外观和感觉的美学变化,并且对触发鼠标光标翻转等内容提供了一些非常基本的支持。它们类似于网页上的CSS。
  • 控制模板:这些是更重量级的样式版本,您可以在其中重新构建控件,以便按钮可以在其中包含文本框。如果样式在逻辑层上工作,其中类似按钮的东西是最原子元素,则控件模板可以进一步深入到控件中,以便按钮的边框,背景,文本等被视为单独的元素而不是一个原子部件。
  • 数据模板:更具针对性的控制模板版本,用于自定义列表中数据项的绘制方式。如果您有一堆图片,您不希望文件名显示在列表框中,您宁愿拥有图像本身。数据模板可以让您完成此类工作。

因此,当你说“让所有窗户看起来都一样”时,你必须问自己,“你的意思是改变只是审美/外观(风格),定制项目集合的显示方式(数据/项目模板)或者完全改变标准控件的外观和行为方式,或者确保页面上控件的布局在多个窗口/页面(控件模板)中是相同的?

最后,您链接的其他帖子的“端到端”非常简单。您可以在那里获取控件模板,然后在您的标签下添加Template = {StaticResource MyTemplateName}并应用模板。 This article on MSDN是控制模板的一个不错的介绍。