我可以在我的主项目中成功添加在我的 Assets 程序集中定义的控件。
例如,像这样的控件:
using System.Windows.Controls;
namespace AdvancedAudioGui.Assets.Controls
{
public class MyControl: Control
{
public string MyProperty { get; set; }
}
}
像这样工作:
<UserControl x:Class="MyCompanyName.AdvancedAudioGui.Parts.MyPart"
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:controls="clr-namespace:AdvancedAudioGui.Assets.Controls;assembly=AdvancedAudioGui.Assets"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<controls:MyControl />
</Grid>
但不是这样(注意:名称或事件处理程序(如 MouseDown)也会发生同样的事情):
<UserControl x:Class="MyCompanyName.AdvancedAudioGui.Parts.MyPart"
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:controls="clr-namespace:AdvancedAudioGui.Assets.Controls;assembly=AdvancedAudioGui.Assets"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<controls:MyControl x:Name="MyInstance"/>
</Grid>
我得到错误:
命名空间“OurCompanyName.AdvancedAudioGui”中不存在类型或命名空间名称“Assets”(您是否缺少程序集引用?)
如果我在后面的代码中创建它们,我可以添加一个名称,所以它一定是一个 xmlns 问题,但我看不到它。有任何想法吗?
谢谢!