wpf A窗体如何附加到B窗体

sunny906 2014-07-17 10:23:57
有两个窗体A和B,需要把A窗体显示在B窗体的一小块区域,如何才能把窗体A附加到窗体B呢?
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2014-07-17
  • 打赏
  • 举报
回复
引用 2 楼 sunny906 的回复:
一般情况下,确实可以使用用户控件实现这个功能,但是现在不行,说到底还是AllowsTransparency="True" WindowStyle="None" 下显示webbrowser的问题,所以我就想先把webbrowser放到一个没有设置AllowsTransparency="True"的窗体里面,然后把这个窗体附加到另一个设置了AllowsTransparency="True"的窗体里面
这样不行,对于xaml来说,你的根只能有一个,就是Window,一个窗体中再嵌套一个窗体,会破坏它的VisualTree(可视化树)结构,这是不允许的。
sunny906 2014-07-17
  • 打赏
  • 举报
回复
一般情况下,确实可以使用用户控件实现这个功能,但是现在不行,说到底还是AllowsTransparency="True" WindowStyle="None" 下显示webbrowser的问题,所以我就想先把webbrowser放到一个没有设置AllowsTransparency="True"的窗体里面,然后把这个窗体附加到另一个设置了AllowsTransparency="True"的窗体里面
exception92 2014-07-17
  • 打赏
  • 举报
回复
WPF不像Winform那样,可以设置父窗口,指定子窗口的parent了,这种子父关系就存在。但是你可以把你的A窗体做成用户控件,在B窗口中引用。或者使用ContentControl控件指定它的Content。
exception92 2014-07-17
  • 打赏
  • 举报
回复
引用 2 楼 sunny906 的回复:
一般情况下,确实可以使用用户控件实现这个功能,但是现在不行,说到底还是AllowsTransparency="True" WindowStyle="None" 下显示webbrowser的问题,所以我就想先把webbrowser放到一个没有设置AllowsTransparency="True"的窗体里面,然后把这个窗体附加到另一个设置了AllowsTransparency="True"的窗体里面
http://www.cnblogs.com/luluping/archive/2012/02/01/2335127.html
exception92 2014-07-17
  • 打赏
  • 举报
回复
引用 8 楼 fudashouyao 的回复:
[quote=引用 7 楼 duanzi_peng 的回复:] [quote=引用 6 楼 fudashouyao 的回复:] [quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 4 楼 fudashouyao 的回复:] A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字
请问你自己测试了没有??[/quote] 我现在的程序就是这么做的。左边树结构,右边就是容器,根据ID不同决定跳到什么界面[/quote] 根据ID不同决定跳到什么界面 界面?是window界面?[/quote] 界面是WPF 用户控件[/quote] 人家问的是 窗体!不是用户控件!我还奇怪了。
fudashouyao 2014-07-17
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
[quote=引用 6 楼 fudashouyao 的回复:] [quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 4 楼 fudashouyao 的回复:] A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字
请问你自己测试了没有??[/quote] 我现在的程序就是这么做的。左边树结构,右边就是容器,根据ID不同决定跳到什么界面[/quote] 根据ID不同决定跳到什么界面 界面?是window界面?[/quote] 界面是WPF 用户控件
exception92 2014-07-17
  • 打赏
  • 举报
回复
引用 6 楼 fudashouyao 的回复:
[quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 4 楼 fudashouyao 的回复:] A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字
请问你自己测试了没有??[/quote] 我现在的程序就是这么做的。左边树结构,右边就是容器,根据ID不同决定跳到什么界面[/quote] 根据ID不同决定跳到什么界面 界面?是window界面?
fudashouyao 2014-07-17
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 4 楼 fudashouyao 的回复:] A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字
请问你自己测试了没有??[/quote] 我现在的程序就是这么做的。左边树结构,右边就是容器,根据ID不同决定跳到什么界面
exception92 2014-07-17
  • 打赏
  • 举报
回复
引用 4 楼 fudashouyao 的回复:
A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字
请问你自己测试了没有??
fudashouyao 2014-07-17
  • 打赏
  • 举报
回复
A窗体上加一个容器。然后把B窗口放到 容器上去 UIElement element = null; T_Logistics control = new T_Logistics(); element = control; oBorder.Child = element; <Border Name="oBorder" Grid.Column="2"> oBorder 容器的名字

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧