【问题标题】:C# WPF Library creatingC# WPF 库创建
【发布时间】:2016-05-11 16:12:49
【问题描述】:

我有一个 WPF 项目。当我们使用 MessageBox.Show 创建表单时,我想在使用 .DLL 文件的其他新项目中使用此项目,例如 C# 中的 MessageBox 表单。

库项目文件不能指定 ApplicationDefinition 元素。

当我将项目的输出更改为“类库”时,“InitializeComponent();”方法出错,我的窗口的构造函数中的许多其他方法也是如此,说 当前上下文中不存在名称“InitializeComponent” 我该如何解决这个问题?以及创建后如何使用我的库?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您不能简单地将其移植到类库。您可以破解 app.xaml 等,但最好创建一个新的“WPF 用户控件库”或“WPF 自定义控件库”。将现有代码迁移到它。确保公开您希望从库外部调用的公共类和方法。

    您可以创建一个解决方案来包含您的新库以及一个测试 WPF 应用程序。这样您就可以在应用程序中添加指向您的库项目的引用。这样测试会更容易。

    至于如何使用该库——您需要对此进行一些研究。根据您的需要,有多种方法可以解决。

    【讨论】:

    • 用户控件不是我想要的...我确实说过我想要一个 MessageBox 窗口
    • 你用 WPF 标记了它,因此这就是你想要的。否则,您将采用通用类库(用于业务对象等)并将其与 WPF 应用程序合并。我正在做的金融交易平台有这样的结构,包括自定义的ViewModels、Views和Controls。如果您希望只有一个通用类库,您可以这样做,但您仍然需要迁移代码。你不能只是改变类型。您应该研究如何创建这样的库,然后在无法解决时发布您遇到的特定问题。 :-)
    【解决方案2】:

    好的,问题是您的项目是一个应用程序,而不是一个库。仅在设置中将其更改为库无济于事。

    最好的做法是创建一个“用户控件库”类型的新项目,然后将所有 xaml 和类复制到新项目中

    【讨论】:

      【解决方案3】:

      从我的项目中删除 App.xaml 有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-07
        • 2014-07-04
        • 1970-01-01
        相关资源
        最近更新 更多