【问题标题】:No creation of a WPF window in a DLL project?没有在 DLL 项目中创建 WPF 窗口?
【发布时间】:2011-04-04 03:40:37
【问题描述】:

Visual Studio 不允许我在 DLL 项目中创建 WPF 窗口是否有原因?

我通过在应用程序项目中创建一个窗口并将其复制到我的 DLL 项目中来“解决”它。 我还发现我可以创建一个 UserControl 并将基类更改为“Window”。

但如果我不得不这样做,那可能是因为我不应该这样做......

【问题讨论】:

    标签: wpf dll window


    【解决方案1】:

    在创建项目时确保项目类型为WPF User Control Library

    如果不是,那么只需编辑 csproj 文件并确保 Project/PropertyGroup 下的 <ProjectTypeGuids> 元素包含以下 GUID

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

    另外,请确保您在项目中引用了 PresentationFramework 和 System.Xaml,否则您的代码中将不会获得任何 WPF。

    【讨论】:

    • 您好 Florian,感谢您的回答,我确实弄错了项目类型并使用了“类库”。 :-s
    【解决方案2】:

    您可以尝试添加新的 WPF 用户控件项并将其更改为 Window。

    添加新项目->WPF->用户控制

    在 XAML 中:

    <UserControl>标签改为<Window>

    在 CS 中:

    将基类从 System.Windows.Controls.UserControl 更改为 System.Windows.Window

    【讨论】:

      【解决方案3】:

      我是这样做的: 1)创建“WPF应用程序” 2) 删除 App.xaml 3) 更改Project properties -> Application Output type: to Class Library (原来有Windows Application)

      否则会报错:

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

      “项目文件包含无效的属性值”

      【讨论】:

        【解决方案4】:

        Visual Studio 不允许您在 DLL 项目中创建 WPF 窗口是什么意思?你的意思是如果你右键项目,那里没有添加窗口的选项吗?

        如果是这种情况,我认为这意味着您创建的项目类型不是 WPF 项目类型。不久前,当我想升级 WinForms 项目以改用 WPF 时,我遇到了类似的情况 - 请参阅 this question 了解更多信息。

        【讨论】:

        • 您好,感谢您的回答,我确实弄错了项目类型并使用了“类库”。 :-s
        猜你喜欢
        • 1970-01-01
        • 2016-07-30
        • 2018-09-14
        • 1970-01-01
        • 2019-09-06
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多