我正在Visual Studio 2015中创建一个通用应用程序。我的通用应用程序引用了一个名为UIComponents
的通用库。
在UIComponents
中,我创建了一个用户控件:
namespace MyProj.UIComponents {
public sealed partial class MyControl : UserControl
{
public MyControl()
{
this.InitializeComponent();
}
}
}
使用以下xaml:
<UserControl
x:Class="MyProj.UIComponents.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyProj.UIComponents"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
<Rectangle Fill="White" HorizontalAlignment="Left" Height="280" Stroke="Black" VerticalAlignment="Top" Width="380" Margin="10,10,0,0"/>
<TextBox x:Name="textBox" Margin="20,20,20,20" TextWrapping="Wrap" Text="TextBox"/>
</Grid>
</UserControl>
在我的app项目中,引用UIComponents
,我这样做:
<Page
x:Class="MyProj.App.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyProj.App"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="using:MyProj.UIComponents"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ui:MyControl></ui:MyControl>
</Grid>
</Page>
但是当我试图让设计师显示我得到的页面时:
错误列表显示:
名称&#34; MyControl&#34;在命名空间中不存在 &#34;使用:MyProj.UIComponents&#34;
有趣的是整个解决方案构建得很好,但设计师没有合作。
clr-namespace
在WPF中存在类似的问题,因此不是严格的通用应用程序,并且它们在解决方案使用的答案上标记为已解决:
xmlns:ui="clr-namespace:MyProj.UIComponents"
Bu不起作用:
未定义的CLR命名空间。 &#39; clr-namespace&#39; URI指的是命名空间 &#39; MyProj.UIComponents&#39;无法找到。
答案 0 :(得分:0)
错误列表显示:
名称&#34; MyControl&#34;命名空间中不存在&#34;使用:MyProj.UIComponents&#34;。
根据我的经验,这可能是由
引起的 UIComponents
图书馆尚未建成。
构建Library项目后,VS会将以下代码添加到YourProject.proj
文件中,VS设计师将检测到该文件:
<ItemGroup>//The following lines will be added.
<Page Include="MyControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
因此,请尝试构建您的库项目并在主项目中重新引用它。重新加载后,设计人员应正确加载内容。
注意:构建库时的体系结构(x64,x86)应与当前体系结构相同。 (例如,当您使用x86构建库时。当您当前的结构为x64时,Designer无法正确加载。)
命名空间错误,这似乎不是主要原因。