C# 访问在XAML WPF中创建的UI元素

C# 访问在XAML WPF中创建的UI元素,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有 在同一命名空间中创建的类。我不能在XAML中使用Canvas2。 如何使Canvas2在XAML代码中可访问? 我是新手。您还必须将本地名称空间导入XAML。 检查示例。您还必须将本地名称空间导入XAML。 检查示例。定义xmlns,如xmlns:local=“clr namespace:WpfApplication1”假设Canvas2是在命名空间WpfApplication1中定义的 然后您可以使用Canvas2作为 感谢定义xmlns,如xmlns:local=“clr namesp

我有

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

您还必须将本地名称空间导入XAML。
检查示例。

您还必须将本地名称空间导入XAML。
检查示例。

定义xmlns,如
xmlns:local=“clr namespace:WpfApplication1”
假设Canvas2是在命名空间WpfApplication1中定义的

然后您可以使用Canvas2作为


感谢定义xmlns,如
xmlns:local=“clr namespace:WpfApplication1”
假设Canvas2是在命名空间WpfApplication1中定义的

然后您可以使用Canvas2作为


谢谢一个又快又脏的回答:在你的AssemblyInfo.cs中添加以下行

[程序集:XmlnsDefinition(“http://schemas.microsoft.com/winfx/2006/xaml/presentation“,“YourNamespace”)]

通过这种方式,可以将名称空间中的所有类添加到默认WPF XML名称空间。然后可以直接使用类,而无需添加自定义xml命名空间

警告:即使这样做有效,也不是推荐的方法。特别是我不建议大型项目使用这种方法,因为它很容易导致名称冲突


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

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

[程序集:XmlnsDefinition(“http://schemas.microsoft.com/winfx/2006/xaml/presentation“,“YourNamespace”)]

通过这种方式,可以将名称空间中的所有类添加到默认WPF XML名称空间。然后可以直接使用类,而无需添加自定义xml命名空间

警告:即使这样做有效,也不是推荐的方法。特别是我不建议大型项目使用这种方法,因为它很容易导致名称冲突

正确的方法是添加自定义XML名称空间,如nit和AsitK

class Canvas2:Canvas
{
}