WinForm里面释放控件资源是Dispose方法,WPF里面是什么方法呢?WPF里面又如何创建像WinForm那样自动占完窗体顶部并有一定宽度的菜单栏呢?谢谢

解决方案 »

  1.   

    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>
      

  2.   

    <MenuItem Header="第3-2个"/> 掉了结尾
      

  3.   


    Close方法里面的那些是什么类的方法呢,搜不到~~~第3-1、3-1-1、3-1-2个这些子菜单项样子跟WinForm里面是一样的,而直接属于<Menu>的第1、2、3、4这些大菜单项就很紧密的堆在左上角,样子和颜色也都不好看,有什么办法让他们的样子和WinForm里面的顶部菜单条一样呢?
      

  4.   

    我继承系统控件来自定义控件,WinForm里面释放控件资源就是重写Dispose,然后调用xx.Dispose();
    在WPF里面如何完成这个功能呢?
      

  5.   

    为什么说不用释放呢?我想要进行某种操作后,让这个控件从我眼前消失,并且让出它占用的空间,以后需要它的时候再重新new出来
      

  6.   

    晕,置 null 以后对象是不存在了,但控件还是好好的摆在那里,也能响应用户操作……我不得不干脆调用 TheParentPanel.Chidren.Remove(TheControl);再 TheControl = null;了主要我分析 WinForm 里面 Dispose 的作用,发现它似乎是用来清理它的子控件的,那么我就想问,上面的 Remove 再 null 能不能做到这一点,会不会导致所谓“内存泄漏”?做不到的话是否可以考虑加一句 conponents.Dispose();?我还想将这整个关闭控件的过程封装为一个成员方法,就是 this = null;这一句无法封装(因为这一句是错的),是不是我只能在调用这个方法以后再老老实实的加一句 TheControl = null;?
      

  7.   

    Close是window的方法
    this.InternalClose(false, false);//这里释放 
    这里调用的是Internal 内部的东西  你看不到  
    在这个方法里面.net已经帮你释放了  看看fefector反编译的东西你就知道了
      

  8.   

    我没有采用多个 Window,而是在 Window 里面用多个 Canvas 来冒充子窗体,所以用不了 Close 方法而想自己写一个,该如何做呢?:)
      

  9.   

    在wpf中除来Window类和与winForm交互的控件需要释放以外
    (可能还有提示框,菜单),其他的很少需要释放资源的,只能同过GC来回收,
    所以wpf控件是没有DIspose方法的
    想回收某个对象,就必须在程序中没有任何地方引用该new的对象,这样
    GC就会回收他,另外可以同过弱引用来实现.
    你把某个控件加入到控件容器中,容器控件自然有这个控件的引用,GC自然不会问他.
      

  10.   

    噢,明白了。那么第一个问题就解决了。
    那么我想让窗体顶部菜单像 WinForm 里面一样,占据整个顶部的宽度,并且高度和下拉菜单项的高度相同,有没有什么简单的样式设置呢?(如果说 Windows.Controls 控件抛弃了 Windows.Forms 控件的样式,那就没有办法了,呵呵)
      

  11.   

    的确没有简单设置样式 不过由dockPanel容器控件