private void UpdateBusyIndicator()
{
var queue = new Queue<FrameworkElement>();
queue.Enqueue(Application.Current.MainWindow);
while (queue.Count > 0)
{
FrameworkElement current = queue.Dequeue();
if (current == null)
continue;
var indicator = current as BusyIndicator;
if (indicator != null)
{
indicator.IsBusy = !_hide;
indicator.BusyContent = _message ?? "Please Wait...";
break;
}
int count = VisualTreeHelper.GetChildrenCount(current);
for (int i = 0; i < count; i++)
{
queue.Enqueue(VisualTreeHelper.GetChild(current, i) as FrameworkElement);
}
}
}
}