“UserControl”types不支持直接内容

我有一个Outlook 2013和2016 VSTO外接项目,并试图将WPF用户控件添加到自定义任务窗格中,如此处所述。

我遇到的问题是,当我添加用户控件(WPF)时,它会生成一个带有网格的WPF控件,但会自动抛出“types”UserControl“不支持直接内容”的错误。

WPF生成:

<UserControl x:Class="TestNamespace.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:TestNamespace" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <Grid> </Grid> </UserControl> 

我知道在过去,我不得不将WPF项目typesguid添加到.proj文件,以获得一些工作,但添加这没有什么区别(事实上,它甚至不会按照特定顺序加载)。

原版的:

 <ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

崩溃:

 <ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

不会崩溃,但不会修复错误:

 <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

任何人都可以指向正确的方向吗?

UPDATE

我试图直接创build一个新的类库项目,添加一个WPF用户控件,然后添加到System.Xaml的引用,我有同样的问题。

对于任何在Visual Studio 2015上遇到此问题的人,请尝试添加(如果尚未添加) System.Xaml对您的项目的引用。 Visual Studio根本无法显示引用错误。

System.XamlUIAutomationProvider引用添加到您的项目中,然后清除解决scheme,然后重新构build

添加System.XamlUIAutomationProvider引用,然后重新启动Visual Studio来解决问题。

在VS2017(15.3.5)中,如果您正在编辑的UserControl的基本UserControl / Window位于相同的库/ exe中,则会出现此问题。 启动VS之后几分钟就可以了,然后在后台打开一些东西,整个XAML文件就是蓝色的。 编译,它会消失,开始打字,它立即回来。 智能感应仍然有效,但它使得XAML编辑器几乎无法使用。

解决这个问题的唯一方法是将基类移动到另一个库中。

所以看起来编码农庄已经在一夜之间了,因为现在看起来这个工作已经很完美了,而且我没有改变任何东西,很奇怪,但至less我现在可以继续了!

除了添加已经指出的参考,我不得不closures并重新打开解决scheme。 如果即使这样也解决不了,请重新启动Visual Studio。

只要删除System.Xaml ,然后再次添加它。

尝试公开像示例一样的新Content属性,并将ContentPropertyAttribute用于该类。 对我有帮助。 我在VS 2017中遇到了问题。

 [ContentProperty( "Content" )] public class MyUserControl: UserControl { public new Object Content { get => base.Content; set => base.Content = value; } ... }