有一个主画面,点击画面中得某个按钮,ShowDialog出来一个子画面(都是wpf的)。这时点击其他地方。比如点击一个txt文本。
然后再点击主画面,这时子画面在主画面后面了。由于设置了【子画面.ShowInTaskbar = false;】所以在下面Taskbar中就看不到子画面了。这样由于是ShowDialog的子画面所以主画面不可以点击,又无法点击到子画面。程序就停在这了。请问如何解决?
PS:时候可以控制当有子画面的时候子画面永远现在在主画面前端?

解决方案 »

  1.   

    把你Show出来那个窗体 改为用户控件  
    当需要显示的时候 就把这个控件至于Z顺序的最顶层
    其它的控件禁用就可以了
      

  2.   

    这是个winform项目。用户控件如何设置?wpf不太会用,不好意思说的详细点谢谢。
    后面的内容没太看明白。
      

  3.   

    <border x:Name="mainBorder">这里面放你页面所有的内容</border>
    <这里放你那个要显示的窗体(用户控件)默认设置为隐藏>当点击某个按钮要显示那个用户控件的时候  就把mainBorder 的Visibility 设置为 Visibility.Collapsed然后把你的用户控件 显示在 页面的最中央 就可以了
      

  4.   

    这样好像不可以,我的子画面和主画面不是在一个wpf中的。你这样做的效果是不是把主画面直接隐藏掉了?
    我想要的效果是主画面不隐藏。在下面的Taskbar一点击主画面,就弹出子画面在前,主画面在后的效果。
    麻烦帮忙看看有没有什么解决方法。谢啦
      

  5.   

    Childwindow.Topmost=true就可以了。
      

  6.   

    MainForm 是你的主窗体
    Message是你的消息窗体
    Message.Owner=MainForm ;
    Message.show();
      

  7.   


    你的意思是在主画面的Activated时间中设置一下,把子画面至于最前端么?
    这个我想到过,但是我有多个子画面,我不知道如何在主画面获得当前打开的子画面的信息,从而将其设置在最前端。请问能详细说下嘛?谢谢
      

  8.   

    不要用ShowDialog
    window3.Topmost=true;
    window3.show();
      

  9.   


    必须用ShowDialog,这个不可以变。
      

  10.   


    像这样做的话,我得前提是要获得消息窗体Activated,可是我现在获得不到。
    只能得到主画面的Activated,所以应该是在主画面获得Activated的时候进行控制把子画面置于最前端吧?