【问题标题】:C# - Silverlight - Custom control or UserControl?C# - Silverlight - 自定义控件还是 UserControl?
【发布时间】:2010-05-21 19:25:05
【问题描述】:

我需要一个在视觉上完全可自定义的按钮,但具有自定义逻辑来发布事件并根据它注册的事件管理其视觉状态。

当我说视觉可定制时,我的意思是我应该能够在 xaml 中创建按钮并通过绑定到提供的样式来设置它的样式。或者,我可以创建按钮实例并通过将参数传递给备用构造函数来设置样式。或者通过调用按钮类的方法来设置样式。

我不打算替换控件模板,它应该是一个按钮。谁能指出我的一些代码示例?

【问题讨论】:

  • “视觉上完全可定制”和“我不打算替换控件模板”,是什么?不能两者兼有。

标签: c# silverlight user-controls


【解决方案1】:

如果您不想让控件被模板化(我通常建议您这样做,但您不必这样做),那么 UserControl 会很好用。一个简单的用户控件,它公开了应用于特定控件的 ButtonStyle 属性,应该可以满足您的需求。

【讨论】:

  • 把它变成一个自定义控件需要更多的工作不是吗?
  • 如何通过构造函数提供它的模板?
  • 我想在内部处理控件的状态(活动/非活动),但这并不适用于所有类型的控件。假设我用户想要加载一个 ViewB,单击一个按钮,然后该按钮将呈现为活动状态。如果他们的用户需要从下拉列表中选择 ViewB,则没有活动状态。
  • 我想我正在寻找类似于超链接按钮的东西。
  • 您是想自己制作控件模板还是让控件的用户重新定义按钮的外观?
【解决方案2】:

完全取决于您的应用程序。与 UserControl 相比,我创建 ContentControl 派生类的次数要多得多,如果只是为了希望它们在未来可能有用的话。

我之前写过:

UserControl 是针对简单设计时使用而优化的内容控件,通常用于在应用程序内共享,而不是与其他应用程序共享。

组件库不应包含 UserControl 实现。

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多