0

我对 WPF 相当陌生,并希望创建我所谓的“小部件框架”。我的应用程序将有一个带有画布的窗口,我可以在其中放置一个或多个“小部件”用户控件,这些控件可以拖动并调整大小。所有小部件都有一个共同的“镶边”,可能顶部带有按钮以最大化/最小化、打开配置对话框等。

在我的 winform 时代,我会创建一个包含通用 UI 元素的基类用户控件,每个小部件用户控件都从该控件继承,但是我相信 WPF 没有等效于用户控件继承。

所以我正在寻找让我开始的指针。答案是否存在于模板、用户控件中?任何代码片段或示例将不胜感激!

要了解我在寻找什么,请查看 Codeplex 上的“Chronos WPF”框架 - http://chronoswpf.codeplex.com/。它是一个小部件框架等等——我徒劳地试图解开小部件的东西,但源是一个巨大的野兽,而且还与一个复合应用程序框架交织在一起。唉,它也不再被积极开发。

4

1 回答 1

1

一个可能的基于 MVVM 的解决方案如下所示:

  1. 将 chrome 创建为 UserControl 并将其绑定到 ChromeViewModel 以执行操作
  2. 在 chrome 中使用 ContentPresenter 控件,然后将其绑定到 ChromeViewModel 上的 Content 属性。这个 Content 属性应该是一个 WidgetViewModel,它是在您创建小部件时在运行时设置的。
  3. 您应该使用 DataTemplate 上的 TargetType 属性指定一个与每个 WidgetViewModel 关联的 DataTemplate(确保将它们放在自己的资源字典文件中)。
于 2012-05-25T17:10:37.767 回答