首页 新闻 会员 周边

WPF 悬浮问题

0
悬赏园豆:100 [待解决问题]

Main画面有两个usercontrol组成,是用grid部署的。现在让其中一个全屏,让另一浮在这个上面的感觉,就是要能部分遮挡全屏的内容这个样子的,有没有什么办法?在winform里面有sendtoback 或者 bringtofront 方法,想问下有没有实现类似效果的。。。表达不是很清楚,希望有关大神帮忙,谢谢

WPF
别了悲小雨的主页 别了悲小雨 | 初学一级 | 园豆:16
提问于:2017-03-07 17:13
< >
分享
所有回答(4)
0

sendtoback 或者 bringtofront 本身就是容器内元素排序问题;

目前几乎的视图框架体系都是逃脱不了这个概念,wpf一样是一棵树(略有差别,比如Content、Child不是容器,而winForm都是Controls->从Control派生)容器模型——理解到这,那么你要解决这个问题就很简单了,甚至可以先把整个布局全部设置好,要调的可以预留个布局控件。

还有一点要注意,WPF是检查了视图层对象唯一性的——winForm没有,因此要先移除再赋值(插入)。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-03-07 22:53

感谢大神回复,看着能理解一点。可惜实际操作的时候,总是想出现在最前的画面被遮挡住,迷茫中。。。

支持(0) 反对(0) 别了悲小雨 | 园豆:16 (初学一级) | 2017-03-08 10:09
1

ZIndex

布鲁克石 | 园豆:402 (菜鸟二级) | 2017-03-08 00:24

设置了,可是想显示在最前面的画面,被半遮挡住了。。不知道什么原因。

支持(0) 反对(0) 别了悲小雨 | 园豆:16 (初学一级) | 2017-03-08 10:09

因为你用的是grid吧,分在不同的column或row当然会被挡一半

支持(0) 反对(0) 布鲁克石 | 园豆:402 (菜鸟二级) | 2017-03-08 10:17

@布鲁克石: 是的。。。我确实用的是grid。。大神,有什么解决办法没?

支持(0) 反对(0) 别了悲小雨 | 园豆:16 (初学一级) | 2017-03-08 10:27

@别了悲小雨:  不知道你具体的业务,不过如果非要用grid的话,除了设置zindex外,如果是分column则设下columnspan,是row就设下rowspan

支持(0) 反对(0) 布鲁克石 | 园豆:402 (菜鸟二级) | 2017-03-08 10:29

@布鲁克石: 谢谢,是这样的,我在一个grid.column 里面放置了2个usercontrol,其中一个usercontrol宿主了winfrom的一个画面。这个在我想显示不宿主winfrom画面程序的时候,被有winfrom 的这个usercontrol盖住了。不知道描述的能否理解。。求指点。

支持(0) 反对(0) 别了悲小雨 | 园豆:16 (初学一级) | 2017-03-08 10:33

@别了悲小雨: 哦,原来是有winform呀,这个用zindex不好使,它永远在最前的,可以考虑设置Visibility为hidden来隐藏,或者如果不是全部隐藏的话,可以先用win32的截图把winform抓个图出来显示,再隐藏winform,这样zindex就起作用了,看起来也好像前面浮在上面。

支持(0) 反对(0) 布鲁克石 | 园豆:402 (菜鸟二级) | 2017-03-08 10:48

@布鲁克石: 好的,理解了。谢谢~

支持(0) 反对(0) 别了悲小雨 | 园豆:16 (初学一级) | 2017-03-08 11:05
0

可以用Popup控件来解决你的问题

YOYOFx | 园豆:202 (菜鸟二级) | 2017-03-10 23:47

在grid布局下,兄弟元素是有顺序的,你要使用不影响布局的隐藏方式 C开头的那个 而不是hide,就可以实现你想要的效果了。

支持(0) 反对(0) YOYOFx | 园豆:202 (菜鸟二级) | 2017-03-10 23:50
0

在外层套一个画布 当一个全屏时 将要显示在前面的控件从Grid中移除 然后加载到画布上 当另一个不再全屏时 将之前移除的控件从画布移除 重新加载到Grid的相应位置

我丫的是条鱼 | 园豆:240 (菜鸟二级) | 2017-08-15 16:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册