代码之家  ›  专栏  ›  技术社区  ›  Robert

确定窗口完全隐藏

wpf
  •  0
  • Robert  · 技术社区  · 15 年前

          Hide();
          var fullScreenshot = _cropper.TakeFullScreenshot();
          Show();
    

    有时拍摄屏幕快照时应用程序不会被隐藏。我怎么才能确定,窗户在哪 完全地

    2 回复  |  直到 15 年前
        1
  •  1
  •   HCL    15 年前

    我不知道截图是怎么拍的,但我怀疑UI线程没有删除所有的内容,因此 TakeFullScreenshot 查看应用程序的其余部分。

    我会尽量等到你的应用程序完成所有必要的ui工作,然后触发 -操作。

    使用 Dispatcher :

    Hide();
    Dispatcher.BeginInvoke(new Action(delegate { 
        fullScreenshot = _cropper.TakeFullScreenshot(); 
        Show();
        }), System.Windows.Threading.DispatcherPriority.ContextIdle, null);
    
        2
  •  0
  •   Robert    15 年前

    目前我正在尝试此解决方案:

    public void Foo()
    {
        IsVisibleChanged += WhenVisibiltyChangend_TakeScreenshot_and_OpenCreateTicketDialog;
        Hide();
    }}
    
    void WhenVisibiltyChangend(object sender, DependencyPropertyChangedEventArgs e)
    {
        if ((bool)e.NewValue == false) { 
            var fullScreenshot = _cropper.TakeFullScreenshot();
            Show();
        }
    }