VS WPF Designer:如何将引用项目中的控件添加到主项目

时间:2016-09-03 22:08:03

标签: c# wpf visual-studio designer

我在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设计师。 XAML Designer重新启动后,重新创建   控制画板。

当我点击“确定”时,没有任何变化,如果我再次尝试添加控件,我会得到相同的错误对话框。我尝试关闭并重新打开XAML文件以及关闭并重新打开Visual Studio。

为什么Visual Studio不允许我通过设计器从引用的项目添加控件?

以下是显示我的设置和我得到的对话框的屏幕截图:

Screenshot

2 个答案:

答案 0 :(得分:1)

清除当前与自定义控件相关的所有内容。将DLL直接拖到工具箱中,无需单独添加引用。这种拖动操作可以满足您的所有需求。它自动添加DLL作为引用,xmlns命名空间和程序集名称。

我使用您的代码对其进行了测试,但它确实有效。

enter image description here

答案 1 :(得分:0)

Gmap.net Error in WPF

在参考和工具箱中清除与DLL相关的所有内容。关闭VS,然后:

  1. 通过Windows资源管理器等找到您的dll文件
  2. 右键单击它
  3. 选择属性
  4. 单击“取消阻止”按钮并应用,然后确定。