我正在为我的 Silverlight 2 应用程序构建自定义控件。它在一个 SL 类项目中,它包含两个文件:

  • MyControl 类,继承自 Control,很少有 DepedencyProperties
  • 主题/generic.xaml,带有视觉元素 (ControlTemplate)、VSM 状态和转换

  • 我手工创建了整个 xaml,它可以工作,但想使用 Blend2(SP1) 进行编辑!当我在 Blend 中打开 generic.xaml 并切换到资源选项卡时,我没有任何要编辑的内容。
    例如,当我将该可视化模板和状态定义放入 App.xaml(我的主要 SL 项目的)时,我可以通过资源和状态选项卡访问所有元素和状态,并进行可视化编辑。

    Blend 甚至支持从 SL2 类项目编辑 generic.xaml 吗?
    构建自定义控件的最佳实践是什么?我不希望我的自定义控件依赖于主 SL2 项目中的任何内容,但希望它们可以换肤,并且能够动态更改皮肤(主题)。

    最佳答案

    您可以使用 Blend 对其进行编辑。

  • 在 Blend 中打开您的控件项目。
  • 打开你的 generic.xaml
  • 单击资源选项卡
  • 展开 generic.xaml
  • 双击要编辑的样式资源。
  • 在 Objects and Timeline 部分,右键单击 Style 并选择“Edit Control Parts -> Edit Template”

  • 现在您可以编辑 generic.xaml 中的模板。听起来您已经通过拥有部件和状态来遵循最佳实践。如果您想要完整的最佳实践,请查看 this detailed post on how to deal with design time extensibility 。在那里,您将了解如何为 Silverlight 执行 Visual Studio 和 Blend 设计时的工作。

    关于silverlight - 带有 Blend 的自定义控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/317648/

    10-12 04:37