在 WPF 项目中,每个模块都有单独的文件夹,我希望每当我点击该模块屏幕时加载默认的 app.xaml 文件



在此处输入图像描述我正在将我的项目从Silverlight迁移到WPF,在Silverlight中,每个模块都有不同的项目,并且它有自己的配置文件,即App.xaml。但是在我的 WPF 项目中迁移它时,我为每个模块都有单独的文件夹。在 WPF 中,我们将 silverlight 库文件添加到 WPF 文件夹中。那么我们如何在文件夹级别初始化 WPF 中的 app.xaml 文件呢?

"那么我们如何在文件夹级别初始化 WPF 中的 app.xaml 文件?"的答案是:

你不能那样做。

您也许可以做类似的事情来满足您的要求。假设您正在谈论资源。

考虑资源字典中 x:Key 为"XX"的单个资源。

当您在 app.xaml 中合并它时,它会添加到具有 XX 键和任何资源值的哈希表中。 这进入了Application.Current.Resources。

如果您的 wpf 应用随后加载任何用户控件,则窗口使用动态资源 XX 的任何内容,然后它获得该值。 从哪里加载并不重要。这可能是一个不同的库或任何你喜欢的。

资源具有范围。

因此,您可以在窗口级别合并资源字典。假设您在模块中添加了另一个资源字典。 你把它合并到 Window1 的资源中,它的 x:Key 是"XX"。 Window1 可视化树实例中的任何内容都将获取您刚刚合并的"新"XX。 任何其他窗口中的任何内容仍将使用该窗口之外的应用程序.当前资源。

可以想象,您可以通过这种方式在用户控制级别合并资源字典。 不过,这通常是一个坏主意,因为每个实例都会在资源内存中获取一个实例。如果你不小心,这可能会增加很多内存。

因此,你可以安排事情,使每个模块都有自己的窗口(或其他一些父模块(,这些窗口合并到它自己独特的资源字典中。这将提供所需任何资源的更本地版本。

也许用户一次只能导航到一个模块,因此只能看到一个模块。无论模块是什么。

然后,可以在应用程序级别合并资源字典。不过,一切都得到了他们。

最新更新