2. 在主窗口留一些位置来 容纳 已经最小化的子窗口,就像最后一幅图中下面的一样(传统的 mdi 也就是这样安排最小化了的子窗口的)。这个功能最好用 ListBox 来实现,设置 ListBox 的 ItemPanelTemplate 和 ItemsSource, 对子窗口的最小化和还原绑定。
3. 要实现子窗口的移动,大小, 菜单等,这只能在代码中实现。如何实现,可以探寻网上的代码例子.
上面三步完成后,基本上就成形了.
子窗口的内容,由於子窗口必定是 Content 或者 Items 类型的控件,所以,内容可以随意的和平常一样放置自己的东西 (通过其 Children/Child/Content 来设置)。
假设主窗口为mainWindow,Window w1=new Window()
//w1的拥有者设置为mainWindow
w1.Owner=this;或者将w1加入到mainWindow的OwnedWindows属性中
然后将w1的Left和Top绑定到mainWindow的相应属性。就可以了,mainWindow的Left和Top属性改变的时候,w1的也会跟着变,可以添加convert,对数据进行加工,关于convert的用法,一两句话说不清楚,你还是去看看书吧。
根据楼主的问题,我觉得完全没有必要用子窗口,可以用panel(stackPanel,DockPanel等)实现,panel也可以拖动的。
http://www.codeplex.com/AvalonDock 在右边有个下载的按钮,下载安装了,重启Visual Studio就可以在Visual Studio用这个控件做出Visual Studio那样的子窗口了,那里还有一些文档,仔细看完就基本上会用那个控件了祝你成功
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)