C# Windows通用应用程序共享库代码不为';无法在特定于平台的项目的XAML中正确引用
我对一个通用Windows应用程序和在Design view和Blend中查看用户控件有问题 我在共享库的中有一个BaseUserControl和一些ValueConverter。我在App.xaml中引用了值转换器,BaseUserControl是我想要使用Blend来帮助设计的特定UserControl的基础 我当前在Visual Studio XAML设计器和Blend中遇到设计时错误: 命名空间中不存在名称“BaseUserControl” “使用:MyProject.Controls” designer视图和混合显示一个框,其中包含以下消息: 无效标记-有关详细信息,请查看错误列表 我可以建立项目,并运行它,一切都显示出来,工作良好 如何在Designer/XAML视图和Blend中识别共享库代码 UserControl的定义如下:C# Windows通用应用程序共享库代码不为';无法在特定于平台的项目的XAML中正确引用,c#,xaml,windows-8.1,blend,win-universal-app,C#,Xaml,Windows 8.1,Blend,Win Universal App,我对一个通用Windows应用程序和在Design view和Blend中查看用户控件有问题 我在共享库的中有一个BaseUserControl和一些ValueConverter。我在App.xaml中引用了值转换器,BaseUserControl是我想要使用Blend来帮助设计的特定UserControl的基础 我当前在Visual Studio XAML设计器和Blend中遇到设计时错误: 命名空间中不存在名称“BaseUserControl” “使用:MyProject.Controls”
...
背后的代码很简单:
名称空间MyProject.Controls.Menu
{
公共密封部分类LeftNavigation:BaseUserControl
{
公共左导航()
{
this.InitializeComponent();
}
}
}
我注意到您使用了控件:BaseUserControl
,它扩展为MyProject.controls.BaseUserControl
。但是,在代码隐藏中,您已将名称空间设置为MyProject.Controls.Menu
。这将阻止设计器找到您的控件
将控件标记更改为:
xmlns:controls="using:MyProject.Controls.Menu"
或者,将代码隐藏中的名称空间更改为MyProject.Controls
,然后可以不使用xmlns:Controls
标记
此外,我还看到设计师没有注意到在Visual Studio 2013中开发的Universal apps(现在称为Windows apps)中共享库中的新控件,即使名称空间是正确的。如果将xaml标记添加到页面时共享库已过时,则可能会发生这种情况。如果发生这种情况,请暂时删除在xaml中包含控件:BaseUserControl
的任何尝试
然后,清洗溶液并重新构建。这将允许共享库正确重建,并将新标记公开给设计器。最后,在构建成功后重新添加标记并再次构建
我希望这能帮助别人。我今天就在这个问题上苦苦挣扎。我也有同样的问题。你设法解决了吗?不幸的是,没有。我创建了一个非通用应用程序项目来找出混合点,然后复制了它。