WPF - 哪个更好?风格还是用户控制?

时间:2010-04-29 07:49:44

标签: wpf user-controls custom-controls styles

我想知道StyleUserControl中哪一个更适合在WPF中使用?

例如: 我以两种不同的方式创建了一个图像按钮。 一个使用StyleContentTemplate属性设置。 它使用另一个具有依赖属性的类。

另一种方式是我创建了一个UserControl,它有一个按钮并且其内容属性已设置。 文件UserControl.xaml.cs还包含依赖项属性。

有关代码详情,请参阅此问题的答案:

Custom button template in WPF

哪一个会更好用?在哪种情况下应选择StyleUserControl或任何CustomControl

2 个答案:

答案 0 :(得分:2)

样式仅限于在XAML元素上设置默认属性。例如,当我设置BorderBrush时,我可以指定画笔而不是边框​​的宽度。为了完全自由控制外观,请使用模板。为此,请创建样式并指定Template属性。

样式和模板仍然只允许您更改控件的外观。要添加行为和其他功能,您需要创建自定义控件。

例如, 要创建一个像播放按钮这样的按钮,请使用样式和模板,但创建一个播放按钮,在暂停后会改变其外观,使用UserControl。

答案 1 :(得分:0)

对于这种类型的东西我会选择Style,即使我不熟悉图形工具。我倾向于产生一种基本的,无聊的风格,我可以开始使用,然后在验证应用程序功能后对其进行美化。

WPF最好的事情是能够将大部分图形外观,感觉和行为远离代码。

这允许您在不重新访问代码的情况下更改应用程序的样式,这意味着您可以在运行时动态更改样式。

关于在XAML中放置了多少行为以及在代码中放置了多少行为,有一条尴尬的路线。一个粗略的指南是决定UI中必须始终存在哪些行为,并将其置于代码中,其他所有内容都放在XAML中。

将代码视为具有已定义接口的抽象类,将XAML样式视为基于该类的类,您将了解我的意思。

相反,我知道那些更擅长GUI工作的人更喜欢在XAML和其他更喜欢代码方面的人中添加更多功能,因为他们发现GUI工作缓慢或困难。

当想到这种方式时,你会发现从来没有真正的正确或错误的答案,只有更适合你技能的解决方案。