我有多线程 WPF 应用程序。我的应用程序中有一个在后台运行的小进程,一旦完成,UI 将根据结果进行更新。
我已经实现了功能,并且运行良好。我只想为我的应用程序创建如下所示的动画处理图像,以便它会一直运行直到 UI 更新。我不太擅长 Expression blend 来创建这种动画。
你能帮我创造它吗?我
谢谢
迪
我有多线程 WPF 应用程序。我的应用程序中有一个在后台运行的小进程,一旦完成,UI 将根据结果进行更新。
我已经实现了功能,并且运行良好。我只想为我的应用程序创建如下所示的动画处理图像,以便它会一直运行直到 UI 更新。我不太擅长 Expression blend 来创建这种动画。
你能帮我创造它吗?我
谢谢
迪
您必须使用 View Model 或 DataContext 中的 bool 属性来执行此操作。此属性应指示是否在后台工作,例如:IsWorking
. 当您开始作业时将此属性设置为 true,当您完成作业时,将其设置为 false。请参阅 DataContext 类的示例代码:
var currentSyncContext = SynchronizationContext.Current;
var backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += (_,__) =>
{
currentSyncContext.Send((t)=>{IsWorking = true;},null); //this is for change the visual tree from another thread
//Here write the job you want to do...
currentSyncContext.Send((t)=>{IsWorking = false;},null); //this is for change the visual tree from another thread
};
backgroundWorker.RunWorkerAsync();
然后在您的 XAML 代码中,您需要使用 BooleanToVisibilityConverter 将图像或控件的可见性绑定到此属性。
我认为这是执行此操作的经典方法。希望对你有用...