0

我有

class Canvas2:Canvas
{
}

在同一个命名空间中创建的类。我不能在 XAML 中使用 Canvas2。如何使 Canvas2 在 XAML 代码中可访问?我是新手。

4

3 回答 3

2

定义 xmlns,就像xmlns:local="clr-namespace:WpfApplication1"假设 Canvas2 在命名空间 WpfApplication1 中定义一样。

那么你可以使用 Canvas2 作为<local:Canvas2 x:Name="MyCanvas"/>

谢谢

于 2013-08-29T07:28:11.493 回答
1

您还必须将本地命名空间导入 XAML。检查MSDN以获取示例。

于 2013-08-29T06:58:54.913 回答
0

一个快速而肮脏的答案:将以下行添加到您的 AssemblyInfo.cs

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "YourNamespace")]

这样,您可以将命名空间中的所有类添加到默认的 WPF-XML-命名空间。然后,您可以直接使用您的类,而无需添加自定义 xml 命名空间。

警告:即使这样可行,也不是推荐的方式。特别是对于大型项目,我不建议这样做,因为它很容易导致名称冲突。

正确的方法是添加自定义的 XML 命名空间,如 nit 和 AsitK 所描述的。

于 2013-08-29T09:14:29.547 回答