【问题标题】:VS WPF Designer: how to add control from referenced project to a form in the main projectVS WPF Designer:如何将引用项目中的控件添加到主项目中的表单
【发布时间】:2016-09-03 22:08:02
【问题描述】:

我在 Visual Studio 2015 社区中有一个非常简单的两项目解决方案。一个项目是 WPF 应用程序;另一个是类库。我已将主项目中的项目引用添加到类库中。类库包含一个名为 TestControl 的 WPF 用户控件,其 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,版本=1.0.0.0,文化=中性,PublicKeyToken=null”

要使用新参考中的类型,请按 OK 重新启动 XAML 设计器。 XAML 设计器重新启动后,重新创建 画板上的控件。

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

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

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

【问题讨论】:

  • 你应该尝试添加xmlns:other="clr-namespace:SomeControls"并调用&lt;other:TestControl /&gt;

标签: c# wpf visual-studio designer


【解决方案1】:

清除当前与自定义控件相关的所有内容。将DLL直接拖到Toolbox中,无需单独添加引用。这种拖动操作使您需要的一切。它会自动添加 DLL 作为引用、xmlns 命名空间和程序集名称。

我使用您的代码对其进行了测试,并且可以正常工作。

【讨论】:

    【解决方案2】:

    Gmap.net Error in WPF

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

    1. 查找您的 dll 文件(通过 Windows 资源管理器等)
    2. 右键单击它
    3. 选择属性
    4. 点击解除阻止按钮并应用就ok了。

    【讨论】:

      猜你喜欢
      • 2013-05-05
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      相关资源
      最近更新 更多