【问题标题】:Grid is not supported in a Windows Presentation Foundation (WPF) projectWindows Presentation Foundation (WPF) 项目不支持网格
【发布时间】:2012-10-17 04:52:56
【问题描述】:

我正在学习如何创建Class Library (Windows Store apps) 并使用UserControl 模板向其中添加用户控件。

然后我在随附的 XAML 中添加了一个 Grid 标记。但是,标签带有蓝色波浪线下划线,当我将鼠标悬停在标签上时,

Windows Presentation Foundation (WPF) 项目不支持网格

工具提示出现。

该库似乎构建没有错误。我已将该库添加到应用程序并在其代码中使用该控件。该应用程序也构建得很好。但是,当我运行应用程序时,我得到了XamlParseException 异常。

我正在使用 Visual Studio 2012 RTM。库和应用程序都只引用了两个标准程序集(.NET for Windows Store appsWindows)。

我可能做错了什么,我应该如何修复库?

【问题讨论】:

    标签: c# .net wpf visual-studio


    【解决方案1】:

    转到 “构建 > 配置管理器...” 并为您的所有项目创建一个适用于 x86 的新平台。
    它不必是活动的,您可以将其保留为 Any CPU

    希望它适用于我的...

    【讨论】:

      【解决方案2】:

      在我的情况下,我从 Debug 切换到 Release,然后再返回,错误就消失了。

      【讨论】:

      • 周一早上走进办公室“我们已经遇到了这些奇怪的问题”。拯救了我的一天
      【解决方案3】:

      我最近遇到了同样的错误,在输出窗口中发现了以下内容:

      10>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFX.targets(268,9): error MC6000: Project file must include the .NET Framework assembly 'WindowsBase, PresentationCore, PresentationFramework' in the reference list.

      我的解决方案是将缺少的引用添加到我的项目中。

      【讨论】:

      • 对我来说类似,当我查看我的参考资料时,有很多警告图标。原来我只需要构建我的项目来恢复 nuget 包,然后关闭并重新打开解决方案。
      【解决方案4】:

      对我来说,将应用程序属性中的“目标框架”设置为 .NET 4.0

      【讨论】:

        【解决方案5】:

        对于许多 XAML 资源错误,这似乎有点“包罗万象”。到目前为止,我发现了两个原因:

        1. 在适当的上下文之外声明资源 - 例如直接在 UserControl 标签中,而不是 UserControl.Resources。
        2. 忘记为“不受支持的”类包含正确的命名空间。基本 ResourceDictionary 中的示例,未定义 sys 命名空间:

          <ResourceDictionary> 
              <sys:string>I'm not supported</sys:string>
          </ResourceDictionary>
          

        【讨论】:

          【解决方案6】:

          我能够解决我的类似问题..

          UserControl is not supported in a Windows Presentation Foundation (WPF) project

          .. 删除 PresentationFramework 引用并通过 nuget 重新添加它。

          【讨论】:

            【解决方案7】:

            [转发评论作为答案]

            我能够毫无问题地完成这些步骤,而且您似乎也能够做到。也许还有其他一些不经意的修改/设置?

            【讨论】:

              【解决方案8】:

              这是 xaml 让自己感到困惑。我在一个项目上有错误,而在另一个项目上没有。在网格错误之前查看 xaml 的顶部,看看是否有对其他控件的引用。尝试进行会导致错误的修改并重建其中一个控件。然后将其放回原样以成功构建,看看这是否会使网格错误消失。 (对我有用)

              【讨论】:

                【解决方案9】:

                Felix D.s answer 非常相似,我从 .csproj 文件中发现一个引用已被删除。 显然用你需要的框架替换 3,或者使用项目属性来设置版本(我认为添加了这个引用)

                Evil Dog Pie 对我来说是第一步,因为出现了一些其他问题。输出日志里总有一堆信息

                <Reference Include="PresentationFramework">
                  <RequiredTargetFramework>3.0</RequiredTargetFramework>
                </Reference>
                

                【讨论】:

                  【解决方案10】:

                  此问题是由于您在项目中选择的 .NET 版本较低。

                  要解决这个问题,请从向上菜单中选择项目,然后选择您的项目属性,然后从目标框架部分选择更高版本的 .NET Framework!

                  希望您的问题得到解决。 真诚的

                  【讨论】:

                    猜你喜欢
                    • 2014-04-13
                    • 1970-01-01
                    • 2017-08-10
                    • 1970-01-01
                    • 2011-10-04
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-12-11
                    • 2016-02-03
                    相关资源
                    最近更新 更多