【问题标题】:Lightswitch - How to re-use existing resources?Lightswitch - 如何重用现有资源?
【发布时间】:2011-08-24 00:33:17
【问题描述】:

我试图了解自定义 LightSwitch 应用程序的外观和感觉的最简化方式是什么。

我已经构建了几个 WPF 和 Silverlight 应用程序,并且有一组通用的画笔、样式、故事板、图像等,作为资源存储在一个专用的类库中。我没有任何自己的用户控件——只有样式、画笔、模板等,让它们看起来是自定义的。

我选择在 LightSwitch 中构建我的下一个应用程序,我希望保持与现有 WPF 和 Silverlight 应用程序相同的外观和感觉。因此,我想重新利用我现有的资源。

我探索了可扩展性工具包,并能够访问 LS 中使用的一些资源,例如画笔,但没有找到样式和模板的位置。

问题 #1:我可以在哪里合并我自己的资源字典以插入我自己的样式和模板?例如,如果我有一个按钮的隐式样式,我应该在哪里合并它?

据我了解,在使用工具包的主题方法时,需要执行以下操作才能看到应用于 LightSwitch 应用程序的修改:
a) 构建主题项目
b) 如果以前安装过,请卸载扩展程序
C) 重启 Visual Studio
d) 重新安装更新的主题扩展
e) 重启 Visual Studio
f) 加载 LightSwitch 解决方案并运行它

我错过了什么吗?我看到的一种解决方法是创建一个常规 Silverlight 项目并使用我自己的资源库。一旦我对特定资源的外观感到满意并希望在 LightSwitch 中看到它,我会将其合并到主题中并执行上述痛苦的过程。

问题 #2:如何快速更改主题并查看它的实际效果?

请问,我错过了什么?我可能会遗漏一些东西,因为这不可能那么复杂,因为它在 SL 和 WPF 中很容易。我想要做的就是在我的 LS 应用程序的某个地方合并我的资源字典并运行它以查看它们的运行情况。请帮忙! :)

【问题讨论】:

    标签: xaml resources visual-studio-lightswitch


    【解决方案1】:

    对于 Q1,仅仅合并一个资源字典是不够的,你需要使用实现一个鲜为人知的接口 IThemeExtension,并用 ThemeExtension 属性装饰类。没有太多关于它的文章,但是一旦你得到了这个不幸的名字(,如果它被称为 StyleExtension 或 ControlStyleExtension 之类的东西,它可能不会那么令人困惑,但它的名字来源于这样一个事实:它是主题的扩展,以附加控件样式的形式),非常简单。

    IThemeExtension 接口只有一个方法可以实现,GetControlStyleResources,它必须返回一个 IEnumerable(Of Uri)。其目的是公开一个或多个 URI 值,每个值都指向包含控件样式定义的 ResourceDictionary(存储在 XAML 文件中)。

    斜体文字引自我与 Tim Leung 合着的一本书,名为“Pro Visual Studio LightSwitch 2011 Development”,将于 2 月底出版。

    如果您下载 Metro 主题的源代码,您将看到 Microsoft 如何使用该主题来更改控件样式以及更改画笔颜色。 (http://code.msdn.microsoft.com/LightSwitch-Metro-Theme-b1bfce24)

    对于第二季度,当我创建主题时,我使用以下步骤进行测试。

    1. 构建项目
    2. 在输出窗口中单击指向 VSIX 的链接
    3. 按照向导安装主题扩展
    4. 打开一个LS项目(如果是没有使用主题的项目,需要在项目的属性中勾选“在这个项目中使用”复选框,&如果还没有选择主题,需要也为项目选择它)。
    5. 运行 LS 项目

    步骤 4 中的额外部分只需要为尚未选择主题的项目完成。完成后,顺序非常简单。绝对不需要卸载/重新安装您的扩展程序。只需确保每次要对其进行测试时都增加版本号(例如从 1.0 到 1.0.1 等),并且扩展程序将升级之前安装的自身版本。

    我希望这一切都会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2021-09-21
      相关资源
      最近更新 更多