在网上有很多帖子和博客介绍WPF继承自定义窗体的方法,一般都是把窗体的样式模板写到BaseStyle.xaml中,事件相应和样式加载都写到BaseStyle.cs中。我也模仿着做,但我遇到的问题是,在BaseStyle.cs的构造函数中,通过this.Style = (Style) App.Current.Resources["BaseWindowStyle"];的方式加载样式到当前窗体中的,但系这个返回了null,我已在App中定义了这个BaseWindowStyle资源,是以MergedDictionaries方式定义的。请问大家有遇到过这个问题吗?谢谢大家。我是参考这里做的:
http://www.cnblogs.com/zhouyinhui/archive/2008/03/16/1108561.html
http://www.cnblogs.com/zhouyinhui/archive/2008/03/16/1108561.html
解决方案 »
- 神啊,有没有办法找回误删除的代码所在文件夹呢?
- 给nice_fish加分,不好意思,结帐给错分了,在这里专门开帐给你分。
- 大哥大姐求帮助:C#中如何使Timer中的事件立即停止?
- 163 信箱的效果是怎么做的 ?? 帮忙~!! 在线等...........
- www.codeproject.com里面的源码不能下载!!(100分)
- 菜鸟提问: asp.net c#中如何实现窗口大小 ~~~在线等
- 主窗体listview控件选中
- C#数据库问题,请帮忙解决,谢谢
- 50分求Janus Controls Suite v1.0 for .NET (winform)正式版!!收到马上给分。在线等!!
- 调用ACCESS数据库时出现:无法启动应用程序。工作信息文件丢失,火势已被其他用户以独占方式打开
- C/S服务器开发问题,请高手看看,在线等...
- SHDocVw.InternetExplorer 怎么能拦截到网页上单击打开URL的链接或者是点击的事件?
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="BaseStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
在这里,this.Style = (Style) App.Current.Resources["**"]可以指定BaseStyle.xaml中的某个样式的(所以这应该不存在加载前或加载后的问题)
你这么是取不到的,好像应该把样式直接放到app.xaml中才能这么做,merge资源取不到另外这种方式自定义窗体不是很好,有很多东西要自己做,而且比较麻烦,微软已推出Ribbon For WPF,里面包含WPF Shell组件,利用它可以方便的自定义窗体,具体可以参考以下文章:http://blog.csdn.net/duanzilin/article/details/6385151