【问题标题】:WPF Project with Custom XAML Controls具有自定义 XAML 控件的 WPF 项目
【发布时间】:2015-12-18 15:01:45
【问题描述】:

我是 WPF 编码的新手。我有一个项目,它具有使用 C# 代码隐藏编码为 xaml 的自定义控件。我尝试将这些文件导入另一个项目,当我尝试在我的主视图文件中使用这些 xaml 控件时,Visual Studio 找不到导入的 xaml 和 C# 代码隐藏所附加到的命名空间。

我尝试将命名空间更改为与当前项目相同。我尝试重新启动 Visual Studio 2013。这些都不起作用。

我尝试将带有自定义控件的项目添加到我的解决方案中。导入的项目可以读取自定义 xaml,但我的主项目仍然无法引用它们。我尝试将文件拖到主项目中,但它们仍然无法正常工作。

我尝试在我的新项目中重建控件 xaml 和 C# 代码隐藏,它仍然显示:

找不到类型“本地:ClickSelectTextBox”。请确认您没有丢失程序集引用并且所有引用程序集都已构建。

此项在适当的命名空间下和当前项目中。

【问题讨论】:

  • 您是否添加了xmlns:controls_namespace 指令?
  • 您能否阐明“Visual Studio 找不到命名空间”的意思?
  • 您能否阐明“导入的项目可以读取自定义 xaml”的意思?你是说自定义控件所在的项目吗?
  • 网上有很多编写WPF自定义控件项目的教程。使用这些。
  • 是的,我已经完成了这些教程。我错过了一些东西。我尝试在我的新项目中重建控件 xaml 和 C# 代码隐藏,它仍然显示:

标签: c# wpf xaml visual-studio-2013


【解决方案1】:

在 Visual Studio 中转到 TOOLS -> 选择 Toolbox Items。这将允许您从一系列不同的组件中进行选择,或者四处浏览以找到您想要使用的 dll。

编辑:

哦,所以您正在尝试获取您已经编写的自定义 xaml 文件并在单独的项目中修改它们?我会建议两件事之一。

1:右击你的项目名称->添加已有的,将xaml和xaml.cs文件同时添加到你的项目中。

如果由于某种原因不起作用,您也可以尝试

2:在您的项目中创建一个新的 xaml 控件(与您要放入的控件的名称相同)并将 xaml 代码复制粘贴到该控件中,这应该会自动生成您需要的代码隐藏设计器外壳。然后,您可以进入 xaml.cs 文件并删除您正在寻找的任何业务逻辑。这不是最干净的解决方案,但有时 WPF 编辑器在导入 xaml 文件时会变得有点奇怪

【讨论】:

  • 我正在尝试在文件后面添加 xaml 和 C# 代码,以便我可以自定义它们。我不能做到这一点。我得到错误:
  • 找不到类型“local:ClickSelectTextBox”。请确认您没有丢失程序集引用并且所有引用程序集都已构建。
  • 我也尝试在工具箱下添加控件,都抛出异常。
【解决方案2】:

我知道这是一篇旧帖子,但仍然有人可能会觉得它很有用:) 所以! ...确保

1)你没有根命名空间之外的公共类,检查这个 link

2)您没有混合您的程序集的目标(除非您不能 100% 避免这种情况)

例如,如果您在 AnyCPU 项目中引用 SQLite.Core NuGet(内置 x86 和 x64 版本的 SQLite.Interop.dll)之类的东西,有时将应用程序的目标设置为 x86 或x64 来解决 x86/x64 路径问题 - 但是即使您的应用程序构建和运行正常,您也可能会从 Designer 得到所有这些“找不到类型/未构建控件/未找到组件”以及所有这些废话。

希望对你有帮助

【讨论】:

    【解决方案3】:

    尝试下载 ReSharper 的试用版,安装它,然后再次打开您的代码。 Resharper 对 XAML 代码的一项令人敬畏的功能是它会自动将对象映射到其适当的命名空间。我认为这会让你更容易,并会向你展示很多方法来把事情做得更好。当我第一次学习 WPF 时,使用 Resharper 真的是天赐之物。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多