WPF在控件里面嵌套WPF窗体

各位大家好,我想用WPF制作如下的窗体窗体要求已经在图上标明了。主要问题是我想在WPF里面在添加一个WPF窗体,可是在网上找了很久的资料没找着,请各位帮帮忙呀。如果能达到... 各位大家好,我想用WPF制作如下的窗体

窗体要求已经在图上标明了。

主要问题是我想在WPF里面在添加一个WPF窗体,可是在网上找了很久的资料没找着,请各位帮帮忙呀。
如果能达到WPF里面用一控件再添加一个WPF窗体的话分就给了。如果能达到图片上的全部要求的话另加高分。
一定要是在WPF里面添加WPF窗体。
还有一般做成这种窗体的格式都是用什么去做的啊?

还有如果有谁能提供一些相关资料的另加分,如果有视频的话那就更好了。拜托各位了。
有谁有这方面比较厉害的,能否收小弟为徒!

另有WPF自定义控件的视频的还可加分。在此感谢各位了。
如有什么不方便的,可加小弟扣扣。

希望能详细的向小弟详解一番。
小弟扣扣:!!(*)*@%$*,(这个是按住shfit 键的,去掉shift键即可)资料可邮箱给我。

先谢过了!
展开
 我来答
后八十生人
推荐于2017-12-16 · 超过17用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:43万
展开全部
明确告诉你你的思路是错误的。

WPF中Window类是不允许作为子元素存在的,所以说窗体中嵌套窗体是不可能实现的。

你学习一下以下内容(MVVM,DataTemplate),你应该就会做了。
追问

那一般像WinForm有MDI完全可以实现子窗体, WPF用什么方法呢?一定要自定义控件吗?

如果是一定要自定义控件的话能否给我一些自定义的参考资料。我还没用过自定义的呢!

这个是我们老师要求我们做的,  功能都可以实现,  但是关于嵌套窗体布局还是不会。 

追答
这里有WPF实现MDI窗口的方法,原理是用的Win API方式实现的:
http://www.cnblogs.com/luluping/archive/2012/02/01/2335127.html

虽然我不明白你们老师的用意,但可以肯定的是,如果是用WPF框架,那么MDI不是优选,WPF的核心是MVVM和DataTemplate,如果一个WPF项目中没有用到这两个东西,那么也就没有选择WPF的必要了。

这里有篇文章介绍 DataTemplate 的,你参考一下:
http://www.cnblogs.com/zhouyinhui/archive/2007/03/30/694388.html

如果是用 DataTemplate实现MDI的话,基本原理如下:

MDI窗体用一个ContentControl表示,然后针对每个子窗体设计一个自定义的类型,再为这些类型设计不同的DataTemplate。当将某个子窗体对象赋值给ContentControl控件的Content属性后,ContentControl控件会自动的将界面按照对应的DataTemplate显示并绑定数据。

你的导航只需要切换ContentControl中Content属性的赋值即可。
mydocument2020
2013-08-06 · TA获得超过202个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:138万
展开全部
如果你把子窗体换成用户控件,那么你的问题就迎刃而解了。可以把红线框住的部分用一个Border替代,然后创建一个用户控件,把红框的内部放到用户控件里,最后设置Border的Child属性为新的用户控件即可。
更多追问追答
追问

一定要用自定义的控件吗?   没有其它办法吗?  我有在网上查到可以嵌入Win32,但是对于直接嵌入wpf的还是没找着。   如果一定要自定义的控件的话应该怎么自定义一个和窗体功能一样的控件呢?  我主要是想实现这样的界面。

追答
<Button Content="子窗体一" Grid.Column="0" HorizontalAlignment="Left" Margin="25,38,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
<Button Content="子窗体二" Grid.Column="0" HorizontalAlignment="Left" Margin="25,89,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
<Border x:Name="MainContent" BorderBrush="Black" Grid.Column="1" HorizontalAlignment="Left"  VerticalAlignment="Top"/>

C#代码:

private void Button_Click(object sender, RoutedEventArgs e)
{
   this.MainContent.Child=new SubWinOne();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
   this.MainContent.Child = new SubWinTwo();
 }

详细内容可查看附件。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loz5
2013-08-05
知道答主
回答量:20
采纳率:0%
帮助的人:18.5万
展开全部
有一个笨办法,不是嵌套。在你的子窗体打开的时候 自定义子窗口打开时的位置,而且位置可以跟随主窗体移动应该就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式