Я разрабатываю приложение для панели отчетности с использованием приложения в стиле W8 Metro UI.В приложении темная тема, поэтому большая часть экрана черная.Я использую элемент управления WebView для отображения отчетов SSR .rdl с нашего сервера отчетов (которые имеют черный фон).Проблема, которую я вижу, заключается в том, что при переходе к новому отчету элемент управления WebView мигает белым в течение доли секунды, а затем загружает новый отчет.Чтобы обойти это, я попытался поместить анимацию непрозрачности Easing в элемент управления WebView, чтобы он исчез, загрузил отчет, а затем снова вернулся. Однако, что бы я ни пытался, я не могу заставить мерцание исчезнуть..
Затем я попытался поместить черный прямоугольник поверх WebView и затемнить его… все равно не повезло.WebView всегда находится на вершине во время выполнения, а это значит, что я не могу поставить поверх него какой-либо элемент управления.Кто-нибудь знает способ обойти это?
Я кратко изучил WebView.Transitions, но не смог найти много ресурсов по этому вопросу.Может ли это быть моим ответом?
РЕДАКТИРОВАТЬ:
Событие для загрузки нового отчета:
void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Create a WebViewBrush of the content currently loaded in the WebView
WebViewBrush b = new WebViewBrush();
b.SourceName = "WebView1";
b.Redraw();
Rectangle1.Fill = b;
// Hide the WebView
WebView1.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
// Navigate to the new report
var selectedItem = ItemListView.SelectedItem;
WebView1.Navigate(((Report)selectedItem).ReportUri);
}
void WebView1_LoadCompleted(object sender, Windows.UI.Xaml.Navigation.NavigationEventArgs e)
{
// Show the new report
WebView1.Visibility = Windows.UI.Xaml.Visibility.Visible;
Rectangle1.Fill = new SolidColorBrush(Colors.Transparent);
}