如何在多个配置中组合各种用户控件类?

时间:2014-04-13 01:00:53

标签: wpf vb.net

我正在vb.net wpf中构建一个可视化组件框架。在完成了最基本的元素(如按钮效果和复选框)之后,我开始根据基本元素的各种组合制作复合元素(例如带有文本或按钮的复选框以及各种类型的响应效果)。

我遇到的不便之处在于,我似乎一遍又一遍地编写相同的代码。大多数基本元素都具有xaml可访问属性,并且大多数元素也需要通过复合元素访问。

举一个例子说明情况 -

我有一个基本元素,它可以为任何容器提供具有可定义深度和颜色属性的按钮外观。

我有一个基本元素,它为鼠标悬停/点击类型高亮效果提供了任何容器。

然后我正在制作一个带有这两个组合的基本按钮,但是现在,如果我想在按钮中可以访问按钮化属性,我必须在按钮中再次重建和重新绑定相同的按钮属性并不比首先在按钮中创建完全相同的功能短。

我环顾四周,认为可能接口可能是我的答案,但似乎它们实际上并没有定义任何方法或任何东西,只是为实现类创建了一个义务来拥有这些方法。

那么有人知道一个.net概念来帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

最好的方法可能与WPF一样。通过使用一些继承层次结构。例如,所有WPF按钮都继承自ButtonBase,其中定义了所有常见属性和逻辑。

另一种方法是使用WPF行为和附加属性。它允许您将特定逻辑附加到WPF控件。但是,在这种情况下,您在同一控件上附加的不同行为之间进行通信时会遇到麻烦。

不幸的是,我不能给你一个更好的答案,因为我不知道你重写现有控件的动机。