将Window设置为隐藏在MVVM中后捕获屏幕

时间:2018-05-28 08:32:28

标签: c# wpf mvvm

我在将Window Variable设置为hidden并触发onPropertyChanged()后尝试捕获屏幕。为什么我还要录制我自己的程序?

_VisibilityWindow = false;
OnPropertyChanged("VisibilityWindow");


Screenshot.captureAll();

_VisibilityWindow = true;
OnPropertyChanged("VisibilityWindow");

1 个答案:

答案 0 :(得分:1)

在属性更改后,UI没有机会更新。 您可以使用Dispatcher代替应用程序完成渲染:

_VisibilityWindow = false;
OnPropertyChanged("VisibilityWindow");

System.Windows.Application.Current?.Dispatcher?.Invoke(() =>
  {
    Screenshot.captureAll();

    _VisibilityWindow = true;
    OnPropertyChanged("VisibilityWindow");
  }, DispatcherPriority.ApplicationIdle);