【问题标题】:I can't add reference to namespace system.windows.controls in a library project我无法在库项目中添加对命名空间 system.windows.controls 的引用
【发布时间】:2011-10-30 09:18:09
【问题描述】:

我正在尝试在库项目中添加对命名空间 System.Windows.Controls 的引用,但我在列表中找不到它。 有人知道发生了什么吗?我正在使用 4.0。 谢谢。

【问题讨论】:

  • 在什么列表中?您可以查看许多列表。

标签: wpf namespaces assemblies


【解决方案1】:

您需要学会区分程序集名称和命名空间。他们不是一对一的通信。

如果您想访问,例如System.Windows.Controls.Button, 您需要引用 PresentationFramework 程序集,它似乎确实包含 MSDN 上记录的大部分类,因为它们位于 System.Windows.Controls 命名空间中。

多个程序集可以将类/控件贡献给单个命名空间。并且不要求程序集中的所有(甚至大部分)类都驻留在单个命名空间中。

【讨论】:

  • 其实我的问题比这要大一点。我有一个类库项目。在这个项目中,我有多个用户控件。这些控件使用继承自“Contol”的类“A”。我正在尝试为所有这些用户控件制作一个 mergd 字典。在本词典中存在的样式中,使用“A”类。我在加载此模板时遇到运行时问题,因为它无法创建类型“A”。我检查了问题,发现我必须将引用 System.Windows.Controls 添加到他的项目中,但我没有在浏览器中找到它。
  • @Ziad - 我认为您的问题的症结和您需要的答案是您需要添加对PresentationFramework 的引用。如果不是这样,您需要编辑您的问题并提供有关您遇到的问题的更多信息。
  • @Ziad - 没有名为 System.Windows.Controls 的程序集。 (反正不在框架中)
  • @Damien_The_Unbeliver 我认为这是一个更好的解释,但我正在尝试使用桌面应用程序并且遇到了同样的问题。 connect.microsoft.com/VisualStudio/feedback/details/605907/…
  • @Ziad - 如果您在 Silverlight 中工作(您的问题只是说 WPF),那么大多数控件都在 System.Windows 程序集中(注意,仍然不是 System.Windows.Controls
【解决方案2】:

如果您使用的是 VS 2010: 检查您的项目设置:右键单击您的项目,选择“属性”,然后选择“应用程序”选项卡。如果“目标框架”的下拉菜单是“.Net Framework 4 Client Profile”,则必须将其更改为“.net Framework 4”。

编辑:我猜需要的程序集是“PresentationFramework.dll”(参见msdn class info about Usercontrol)。我的错,我只是认为它会是客户端配置文件,因为我通常会犯这个错误。

【讨论】:

  • 我非常肯定System.Windows.Controls 在 .NET 客户端配置文件中可用。再说一次,值得一试。
  • 我的错,编辑了我的答案 - 我只是认为这将是 Clientprofile 并在本地进行了测试。由于这是我犯的一个常见错误,我认为这将是问题所在。由于我不开发桌面应用程序,因此我不是命名空间/程序集的专家。但 MSDN 帮助解决了疑问。
【解决方案3】:

System.Windows 附带 Silverlight 工具包。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2016-08-29
    • 2016-04-06
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多