如何在XAML中使用C#自定义子类?
这是我的问题:我想在我的窗口中使用SurfaceInkCanvas的一个子类。 我创建了一个C#类,如下所示:如何在XAML中使用C#自定义子类?,c#,wpf,xaml,inheritance,C#,Wpf,Xaml,Inheritance,这是我的问题:我想在我的窗口中使用SurfaceInkCanvas的一个子类。 我创建了一个C#类,如下所示: namespace MyNamespace { public class SubSurfaceInkCanvas : SurfaceInkCanvas { private MyWindow container; public SubSurfaceInkCanvas() : base() {
namespace MyNamespace
{
public class SubSurfaceInkCanvas : SurfaceInkCanvas
{
private MyWindow container;
public SubSurfaceInkCanvas()
: base()
{
}
public SubSurfaceInkCanvas(DrawingWindow d) : base()
{
container = d;
}
protected override void OnTouchDown(TouchEventArgs e)
{
base.OnTouchDown(e);
}
}
}
我想在我的XAML窗口中使用它。是这样的吗
<MyNamespace:SubSurfaceInkCanvas
x:Name="canvas"
Background="White"
TouchDown="OnTouchDown"/>
我完全错了吗?您需要添加名称空间(xmlns:myControls),可以这样尝试:
<Window ...
xmlns:myControls="clr-namespace:MyNamespace;assembly=MyNamespace"
...>
<myControls:SubSurfaceInkCanvas x:Name="canvas"
Background="White"
TouchDown="OnTouchDown"/>
</Window>
为了使用类,您需要导入一个Xml名称空间
<Window x:Class="Namespace.SomeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> ... </Window>
。。。
注意名称空间是如何导入的。默认名称(无前缀)可以是您想要的任何名称,但最好将其留给Microsoft的表示名称空间。然后是“x”名称空间,它是基本的xaml名称空间(当然可以更改前缀,但应该保持原样)
因此,为了向其中添加您自己的名称空间,有两种方法(如果是本地的,则有一种)
- CLR名称空间:
xmlns:=“CLR名称空间:;Assembly=”以获取关于该名称空间的解释