WPF的小白问题 WinForm里面释放控件资源是Dispose方法,WPF里面是什么方法呢?WPF里面又如何创建像WinForm那样自动占完窗体顶部并有一定宽度的菜单栏呢?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void Close(){ this.VerifyApiSupported(); SecurityHelper.DemandUIWindowPermission(); this.VerifyContextAndObjectState(); this.InternalClose(false, false);//这里释放}菜单栏<Menu> <MenuItem Header="第1个"/> <MenuItem Header="第2个"/> <MenuItem Header="第3个"> <MenuItem Header="第3-1个"> <MenuItem Header="第3-1-1个"/> <MenuItem Header="第3-1-2个"/> </MenuItem> <MenuItem Header="第3-2个"> </MenuItem> <MenuItem Header="第4个"/></Menu> <MenuItem Header="第3-2个"/> 掉了结尾 Close方法里面的那些是什么类的方法呢,搜不到~~~第3-1、3-1-1、3-1-2个这些子菜单项样子跟WinForm里面是一样的,而直接属于<Menu>的第1、2、3、4这些大菜单项就很紧密的堆在左上角,样子和颜色也都不好看,有什么办法让他们的样子和WinForm里面的顶部菜单条一样呢? 我继承系统控件来自定义控件,WinForm里面释放控件资源就是重写Dispose,然后调用xx.Dispose();在WPF里面如何完成这个功能呢? 为什么说不用释放呢?我想要进行某种操作后,让这个控件从我眼前消失,并且让出它占用的空间,以后需要它的时候再重新new出来 晕,置 null 以后对象是不存在了,但控件还是好好的摆在那里,也能响应用户操作……我不得不干脆调用 TheParentPanel.Chidren.Remove(TheControl);再 TheControl = null;了主要我分析 WinForm 里面 Dispose 的作用,发现它似乎是用来清理它的子控件的,那么我就想问,上面的 Remove 再 null 能不能做到这一点,会不会导致所谓“内存泄漏”?做不到的话是否可以考虑加一句 conponents.Dispose();?我还想将这整个关闭控件的过程封装为一个成员方法,就是 this = null;这一句无法封装(因为这一句是错的),是不是我只能在调用这个方法以后再老老实实的加一句 TheControl = null;? Close是window的方法this.InternalClose(false, false);//这里释放 这里调用的是Internal 内部的东西 你看不到 在这个方法里面.net已经帮你释放了 看看fefector反编译的东西你就知道了 我没有采用多个 Window,而是在 Window 里面用多个 Canvas 来冒充子窗体,所以用不了 Close 方法而想自己写一个,该如何做呢?:) 在wpf中除来Window类和与winForm交互的控件需要释放以外(可能还有提示框,菜单),其他的很少需要释放资源的,只能同过GC来回收,所以wpf控件是没有DIspose方法的想回收某个对象,就必须在程序中没有任何地方引用该new的对象,这样GC就会回收他,另外可以同过弱引用来实现.你把某个控件加入到控件容器中,容器控件自然有这个控件的引用,GC自然不会问他. 噢,明白了。那么第一个问题就解决了。那么我想让窗体顶部菜单像 WinForm 里面一样,占据整个顶部的宽度,并且高度和下拉菜单项的高度相同,有没有什么简单的样式设置呢?(如果说 Windows.Controls 控件抛弃了 Windows.Forms 控件的样式,那就没有办法了,呵呵) 的确没有简单设置样式 不过由dockPanel容器控件 DevExpress dateEdit 控件问题 读取网页的问题 请教一个问题,postmessage给后台窗体发送消息,已经成功,可以在小画家画图 一个关于动态加载属性的问题 Access取date()的月和日问题 如何软件换肤? 请问在C#中类似于vb中的inputBox 的函数是哪个呀??? 交作业了!求指错,谢谢! 第一个C#程序“Hello World”出错 请问 论坛的文本框控件赋值问题 【asp.net】关于如何截取指定网站的首页为图片
{
this.VerifyApiSupported();
SecurityHelper.DemandUIWindowPermission();
this.VerifyContextAndObjectState();
this.InternalClose(false, false);//这里释放
}
菜单栏<Menu>
<MenuItem Header="第1个"/>
<MenuItem Header="第2个"/>
<MenuItem Header="第3个">
<MenuItem Header="第3-1个">
<MenuItem Header="第3-1-1个"/>
<MenuItem Header="第3-1-2个"/>
</MenuItem>
<MenuItem Header="第3-2个">
</MenuItem>
<MenuItem Header="第4个"/>
</Menu>
Close方法里面的那些是什么类的方法呢,搜不到~~~第3-1、3-1-1、3-1-2个这些子菜单项样子跟WinForm里面是一样的,而直接属于<Menu>的第1、2、3、4这些大菜单项就很紧密的堆在左上角,样子和颜色也都不好看,有什么办法让他们的样子和WinForm里面的顶部菜单条一样呢?
在WPF里面如何完成这个功能呢?
this.InternalClose(false, false);//这里释放
这里调用的是Internal 内部的东西 你看不到
在这个方法里面.net已经帮你释放了 看看fefector反编译的东西你就知道了
(可能还有提示框,菜单),其他的很少需要释放资源的,只能同过GC来回收,
所以wpf控件是没有DIspose方法的
想回收某个对象,就必须在程序中没有任何地方引用该new的对象,这样
GC就会回收他,另外可以同过弱引用来实现.
你把某个控件加入到控件容器中,容器控件自然有这个控件的引用,GC自然不会问他.
那么我想让窗体顶部菜单像 WinForm 里面一样,占据整个顶部的宽度,并且高度和下拉菜单项的高度相同,有没有什么简单的样式设置呢?(如果说 Windows.Controls 控件抛弃了 Windows.Forms 控件的样式,那就没有办法了,呵呵)