【发布时间】:2012-02-23 22:22:54
【问题描述】:
我正在使用 W8 Metro UI 风格的应用程序开发一个报告仪表板应用程序。该应用程序具有深色主题,因此大部分屏幕都是黑色的。我正在使用 WebView 控件来显示来自我们的报表服务器(它们都有黑色背景)的 SSRS .rdl 报表。我看到的问题是,当我导航到一个新报表时,WebView 控件会闪烁白色一瞬间,然后加载新报表。为了解决这个问题,我尝试在 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);
}
【问题讨论】:
-
闪烁很糟糕,我的应用程序因此而未能通过证书。我认为它是 WinRT 中的一个错误。
标签: wpf xaml windows-8 windows-runtime microsoft-metro