WPF - 可配置的用户界面

时间:2016-12-13 12:45:30

标签: c# wpf user-interface

我们目前有可配置用户界面的基本实现,但我们觉得这不是最佳方式。我们正在开发另一个需要从外部文件配置的应用程序,我们想知道是否有更好的方法来实现它。

我们目前有xml文件,其中包含名称和可用性的元素,这些元素直接转换为可见性。当元素为available="false"时,我们会使用visibility="collapsed"隐藏元素。元素包含在带有名称的Setup元素中。有一个单独的配置文件,我们要加载设置名称。

<Setup name="All">
    <Element name="toolBarDrawingTools" available="true"/>
    ...
</setup>
<Setup name="Operator">
    <Element name="toolBarDrawingTools" available="false"/>
    ...
</setup>

它运作得相当好,但我们觉得仅仅隐藏元素并不是一个好方法。更好的方法可能是创建和添加我们需要的元素。布局应该不是什么大问题,因为大多数元素都是将添加到StackPanels的ToolBars,MenuItems或UserControls。所以没有复杂的元素定位。我们还发现使用XAML代码定义xml文件,并在运行时将其转换为可视元素。我们不需要那么多复杂性。我们有一组我们想要动态添加的UserControl。

我们没有清晰的愿景。最后,我们可以使用我们当前的方法,它会起作用。我们需要的是从外部源定义最终窗口中的元素,而无需重新编译整个应用程序。

所以我要问的是我们有什么选择,有没有&#34;标准化&#34;方式或框架。你知道关于这个主题的任何文章或书籍吗?或者我们应该坚持最简单的方法,只是隐藏我们不想要的东西?

谢谢

1 个答案:

答案 0 :(得分:1)

据我所知,您正在进行模块化应用程序开发。所以我建议你看看下一个主题;在互联网上使用Prism 模块化应用程序开发。例如,通过这种方法,您可以使用PRISM发现机制(使用app.config文件定义模块)来构建整个用户界面。以下是几个可能的链接:

  1. Building an Extensible Application with MEF, WPF, and MVVM
  2. Modular Application Development Using Prism Library 5.0 for WPF
  3. A MEF explanation topic
  4. 如果您需要更多解释,请告诉我。

    最好的问候。