我在Visual Studio 2015社区中有一个非常简单的双项目解决方案 . 一个项目是WPF应用程序;另一个是类库 . 我在主项目中向类库添加了一个项目引用 . 类库包含一个名为 TestControl
的WPF UserControl,其中包含以下XAML:
<UserControl x:Class="SomeControls.TestControl"
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:SomeControls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="38,29,0,0" VerticalAlignment="Top" Width="75"/>
<CheckBox x:Name="checkBox" Content="CheckBox" HorizontalAlignment="Left" Margin="163,40,0,0" VerticalAlignment="Top"/>
<TextBlock x:Name="textBlock" HorizontalAlignment="Left" Margin="83,102,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="121" Width="164"/>
</Grid>
</UserControl>
它包含的唯一控件是标准WPF控件 .
类库项目成功构建,当我在WPF应用程序项目中打开主窗口的WPF设计器时,类库中的 TestControl
控件出现在工具箱中 . 但是当我从工具箱中选择该控件并尝试将实例添加到我的主窗口时,我得到一个对话框,指出:
以下引用已添加到项目中:“SomeControls,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”要使用新引用中的类型,请按“确定”以重新启动XAML Designer . 重新启动XAML Designer后,在美工板上重新创建控件 .
当我单击“确定”时,没有任何更改,如果我再次尝试添加控件,则会出现相同的错误对话框 . 我尝试关闭并重新打开XAML文件以及关闭并重新打开Visual Studio .
为什么Visual Studio不允许我通过设计器从引用的项目中添加控件?
这是一个屏幕截图,显示了我的设置和我得到的对话框:
1 回答
清除当前与自定义控件相关的所将DLL直接拖到工具箱中,无需单独添加引用 . 这种拖动操作可以满足您的所有需求 . 它自动添加DLL作为引用,xmlns命名空间和程序集名称 .
我使用你的代码测试它,它的工作原理 .