WPF窗体自定义基类
最近公司开始一个项目开发,打算使用WPF实现,由于WPF算是比较新的知识吧,公司也没有什么人懂,都是临时抱佛脚的。。
项目中有不少窗体会共用到一些东西,比如窗体样式风格之类的。这很自然的就想到使用继承嘛,以往我们在Winfrom下只要简单建一个类,让窗体继承自己自定义的基类即可,但,WPF窗体却不一样,他是由一个xaml以及一个后台文件组合成的,这时我们新建一个cs文件,从Windows继承
将 public partial class Window1 :Window
修改为:
public partial class Window1 :BaseWindow
本想着这样就OK了,但编译后,你会得到一个错误:Window1有着不同的基类。
这是因为Window1.xaml文件默认也是继承Window的,搞清楚问题之后。
相应的将<Window>....</Window>
修改为
<src:BaseWindow>...</src:BaseWindow>
同时加入引用
xmlns:src="clr-namespace:WpfDemo"
项目中有不少窗体会共用到一些东西,比如窗体样式风格之类的。这很自然的就想到使用继承嘛,以往我们在Winfrom下只要简单建一个类,让窗体继承自己自定义的基类即可,但,WPF窗体却不一样,他是由一个xaml以及一个后台文件组合成的,这时我们新建一个cs文件,从Windows继承
将 public partial class Window1 :Window
修改为:
public partial class Window1 :BaseWindow
本想着这样就OK了,但编译后,你会得到一个错误:Window1有着不同的基类。
这是因为Window1.xaml文件默认也是继承Window的,搞清楚问题之后。
相应的将<Window>....</Window>
修改为
<src:BaseWindow>...</src:BaseWindow>
同时加入引用
xmlns:src="clr-namespace:WpfDemo"
好了,大功告成了。。
建议,可以自己新建一个"资源字典"(即XAML文件),然后在App.XAML文件中引用,这有点像写html的时候引用外部样式一样。。
<Application.Resources>
<ResourceDictionary Source="BaseStyle.xaml">
</ResourceDictionary>
</Application.Resources>