VS2012-将WPF现有用户控件添加到项目

VS2012-将WPF现有用户控件添加到项目,wpf,visual-studio-2012,user-controls,Wpf,Visual Studio 2012,User Controls,这看起来应该很简单,但我似乎无法实现。假设我有一个名为uc1的用户控件的现有项目。我想在另一个项目中使用此用户控件。我在解决方案资源管理器中右键单击项目名称并选择“添加”>“现有项”,将下拉列表更改为“所有文件”,然后选择文件uc1.xaml和uc1.xaml.vb。这当然会将文件添加到项目中,但是xaml和代码隐藏文件之间没有关联,也无法使用控件。这样做的正确方式是什么 这当然会将文件添加到项目中,但是xaml和代码隐藏文件之间没有关联,也无法使用控件。这样做的正确方式是什么 通常,您会添加对

这看起来应该很简单,但我似乎无法实现。假设我有一个名为uc1的用户控件的现有项目。我想在另一个项目中使用此用户控件。我在解决方案资源管理器中右键单击项目名称并选择“添加”>“现有项”,将下拉列表更改为“所有文件”,然后选择文件uc1.xaml和uc1.xaml.vb。这当然会将文件添加到项目中,但是xaml和代码隐藏文件之间没有关联,也无法使用控件。这样做的正确方式是什么

这当然会将文件添加到项目中,但是xaml和代码隐藏文件之间没有关联,也无法使用控件。这样做的正确方式是什么

通常,您会添加对另一个项目的引用,并直接使用UserControl


这允许您使用UserControl构建单个项目,并在多个项目中使用生成的程序集(DLL),而无需重复代码。

如果您希望重用用户控件,则需要创建一个新项目,并从可用项目列表中选择“类库”。编译时,只要向编译后的DLL添加一个引用,就可以轻松地将此类库用于任何数量的其他项目和解决方案,该DLL是在构建此类库时创建的


编辑:正如在其他答案中提到的,它是“WPF用户控制库”,而不是简单的“类库”…

里德的答案是一个很好的体系结构答案。如果您计划创建一个将在许多项目中重用的控件,那么最好使用控件库

不过,您最初的问题在某些情况下是有效的。假设你有一些源代码从互联网上,你已经解压缩到你的驱动器。此项目包含要添加到项目中的.XAML文件及其链接的.vb文件

如您所见,VisualStudio解决方案资源管理器在使用“添加项”对话框添加时不会链接文件。我认为这是一个错误。我发现,如果我重新加载项目,就会添加从属关系

这里有一个我使用的解决方法。我将文件从Windows资源管理器/文件资源管理器拖到解决方案资源管理器中的项目上。这是第一次正确地工作。

您只需添加.xaml文件,VS应自动添加代码隐藏(嵌套)。我已经看过几次了,正如@Walt Ritscher所说的,这可能是一个bug


我发现只要重新启动Visual Studio并重新加载我的解决方案就行了。

感谢您的回复。好的,如果我理解正确,我应该创建一个WPF自定义控件库类型的新项目来容纳我的所有用户控件,然后从我的其他项目引用编译的dll?通过这种方式,我可以访问xaml并能够在创建控件时将其可视化?@dkirkdrei您可能想要“WPF UserControl Library”,而不是“Custom control Library”,但是,是的。是的,尽管使用WPF UserControl Library而不是Custom control Library更好。是的,您的回答是正确的!要是我在我的项目中读得再深入一点就好了;)谢谢你的帮助!谢谢你的建议,不过我已经尝试过了,但它不适合我?当我将文件从windows资源管理器拖到解决方案资源管理器中时,我立即得到一个禁止标志,并且文件不会以任何方式复制。如果有什么不同的话,我正在使用VS2012 Pro。我有VS2012 Ultimate,但我怀疑这会有什么不同。您是否正在删除项目节点?我假设您在删除应用程序时没有调试该应用程序。Solution explorer支持拖放已有多年了。在VS 2019中,我不得不在Solution explorer(本例中为Wpf2)中拖放到项目本身,但拖到空白处不起作用。