这似乎应该很简单,但我似乎无法实现。假设我有一个现有项目,其中包含一个名为 uc1 的用户控件。我想在另一个项目中使用这个用户控件。我在解决方案资源管理器中右键单击项目名称并选择添加>现有项目,将下拉列表更改为所有文件并选择文件 uc1.xaml 和 uc1.xaml.vb。这当然会将文件添加到项目中,但 xaml 和文件背后的代码之间没有关联,并且无法使用控件。这样做的正确方法是什么?
4 回答
里德的答案是一个很好的建筑答案。如果您计划创建一个将在许多项目中重复使用的控件,那么最好使用控件库。
不过,您最初的问题在某些情况下是有效的。假设您有一些来自 Internet 的源代码已解压缩到您的驱动器中。此项目包含要添加到项目的 .XAML 文件及其链接的 .vb 文件。
如您所见,Visual Studio 解决方案资源管理器在使用“添加项目”对话框添加时不会链接文件。我认为这是一个错误。我发现如果我重新加载项目,就会添加从属关系。
这是我使用的解决方法。我将文件从 Windows 资源管理器/文件资源管理器拖到解决方案资源管理器中的项目上。这是第一次正常工作。
这当然会将文件添加到项目中,但 xaml 和文件背后的代码之间没有关联,并且无法使用控件。这样做的正确方法是什么?
通常,您会添加对其他项目的引用,并直接使用 UserControl。
这允许您使用 UserControl 构建单个项目,并在多个项目中使用生成的程序集 (DLL),而无需复制代码。
如果您想重用您的用户控件,您需要创建一个新项目并从可用项目列表中选择“类库”。编译该类库后,任何数量的其他项目和解决方案都可以轻松使用该类库,只需添加对构建该类库时创建的已编译 DLL 的引用即可。
编辑:正如其他答案中提到的那样,它是“WPF UserControl Library”,而不是简单的“Class Library”......
您只需要添加 .xaml 文件,VS 应该自动添加代码后面(嵌套)。我已经看到这几次不起作用,正如@Walt Ritscher 所说,这可能是一个错误。
我发现只需重新启动 Visual Studio 并重新加载我的解决方案即可。