Silverlight 怎么给自己的控件加继承?
假设我有以下文件Wolf.xamlWolf.xaml.csTiger.xamlTiger.xaml.csHorse.xamlHorse.xaml.cs这些空间都有void...
假设我有以下文件
Wolf.xaml
Wolf.xaml.cs
Tiger.xaml
Tiger.xaml.cs
Horse.xaml
Horse.xaml.cs
这些空间都有 void Eat() void Run() 等过程属性,
我希望减少代码量,将这些过程属性统一放到 Animal.cs 中。
自己实验的过程中出现很多错误和警告,例如
“未将对象引用设置到对象的实例。”
InitializeComponent() 这个部分的处理
还有 g.cs 的各种问题
等等,总之对于 XAML 比起普通的控制台程序麻烦许多,
不知道各位是否有在 UserControl 加继承的经验? 展开
Wolf.xaml
Wolf.xaml.cs
Tiger.xaml
Tiger.xaml.cs
Horse.xaml
Horse.xaml.cs
这些空间都有 void Eat() void Run() 等过程属性,
我希望减少代码量,将这些过程属性统一放到 Animal.cs 中。
自己实验的过程中出现很多错误和警告,例如
“未将对象引用设置到对象的实例。”
InitializeComponent() 这个部分的处理
还有 g.cs 的各种问题
等等,总之对于 XAML 比起普通的控制台程序麻烦许多,
不知道各位是否有在 UserControl 加继承的经验? 展开
2个回答
展开全部
对于一个控件来说,分成2个部分,第一部分是.CS,另一个.xaml。这两个分别继承:
如果父控件只有自定义的方法,没有样式的话,只需要写一个类继承于UserControl,不需要有.xmal文件。
//父类
public class Father: UserControl
{
//你的方法
}
//子类
.cs文件
public class Child: Father
{
}
.xmal文件
<location:Father
//其他的系统命名空间,略
xmlns:location="clr-namespace:父类的命名空间" //父类的命名空间
x:Class="子类的命名空间.Child" >//子类的命名空间+类名(和CS文件定义保持一致)
//你的xaml内容
</location:Father>
如果你新建一个自定义控件,它就是继承于UserControl,现在只不过换成你自己的类而已,你要做的唯一一件事就是引入父类的命名空间!
如果父控件只有自定义的方法,没有样式的话,只需要写一个类继承于UserControl,不需要有.xmal文件。
//父类
public class Father: UserControl
{
//你的方法
}
//子类
.cs文件
public class Child: Father
{
}
.xmal文件
<location:Father
//其他的系统命名空间,略
xmlns:location="clr-namespace:父类的命名空间" //父类的命名空间
x:Class="子类的命名空间.Child" >//子类的命名空间+类名(和CS文件定义保持一致)
//你的xaml内容
</location:Father>
如果你新建一个自定义控件,它就是继承于UserControl,现在只不过换成你自己的类而已,你要做的唯一一件事就是引入父类的命名空间!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询