c# - Windows 手机 8 : Web Browser - Splash Screen

标签 c# xaml windows-phone-8

我正在尝试在Windows Phone 8平台上做一些小应用程序。

我正在尝试同时使用网络浏览器和启动屏幕。

我在应用程序启动之前制作了闪屏。但我希望当网络浏览器组件完成加载移动网站时,启动屏幕必须消失。

我通过谷歌搜索互联网制作了应用程序,但它在特定时间使用 sleep 。例如; “应用程序启动前等待 10 秒” 这是它的代码;

public partial class MainPage : PhoneApplicationPage
{
    private Popup _popup;
    private BackgroundWorker _backgroundWorker;

    public MainPage()
    {
        ShowPopup();
        InitializeComponent();
        Browser.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(BrowserNavigated);
        Browser.Navigating += new EventHandler<NavigatingEventArgs>(BrowserNavigating);
        Browser.ScriptNotify += new EventHandler<NotifyEventArgs>(BrowserScriptNotify);
    }

    private void ShowPopup()
    {
        _popup = new Popup();
        _popup.Child = new PopupSplash();
        _popup.IsOpen = true;

        StartLoadingData();
    }

    private void StartLoadingData()
    {
        _backgroundWorker = new BackgroundWorker();
        _backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);

        _backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BackgroundWorkerRunWorkerCompleted);
        _backgroundWorker.RunWorkerAsync();
    }

    void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
    {
        //data loading
        Thread.Sleep(10000);
    }

    void BackgroundWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        this.Dispatcher.BeginInvoke(() =>
        {
            this._popup.IsOpen = false;
        }
        );
    }

    void BrowserScriptNotify(object sender, NotifyEventArgs e)
    {
        Browser.Navigate(new Uri(e.Value, UriKind.Absolute));
    }

    void BrowserNavigating(object sender, NavigatingEventArgs e)
    {
        progressBar1.Visibility = Visibility.Visible;
    }

    void BrowserNavigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        progressBar1.Visibility = Visibility.Collapsed;
    }
}

但我的问题是,我该如何制作“当网络浏览器组件完成加载移动网站并根据该加载使闪屏消失。”

有什么例子吗?

我需要帮助,谢谢。

最佳答案

您可以执行以下操作:

在您的 xaml 中有一个 WebBrowser 控件,其上方有一个图像,并处理“加载完成”事件。

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <phone:WebBrowser LoadCompleted="WebBrowser_OnLoadCompleted">

    </phone:WebBrowser>
    <Image x:Name="CoverImage" Width="Auto" Height="Auto" Source="Assets\AlignmentGrid.png"></Image>

</Grid>

在后面的代码中将覆盖图像的可见性设置为隐藏。

private void WebBrowser_OnLoadCompleted(object sender, NavigationEventArgs e)
{
    this.CoverImage.Visibility = Visibility.Collapsed;
}

关于c# - Windows 手机 8 : Web Browser - Splash Screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717080/

相关文章:

c# - 将 InputGestureText 显示为 Button 的工具提示

windows-phone-7 - Windows Phone - 为 PhoneApplicationPage 使用通用类

c# - 如何将 ValueConverter 应用于基于约定的 Caliburn.Micro 绑定(bind)示例?

c# - 在代码中更改服务引用 URL

c# - MVC 中的 AJAX JSON 调用来过滤 View 中的列表

c# - 哪个更好...内存中搜索或数据库访问?

c# - 使用 Sitecore().Field() 格式化 Sitecore 日期?

c# - java、c#、vb : Can we write thread safety functions without relying on native implementations

WPF ComboBox 在是 DependencyObject 时不显示当前项目

c# - 重新设计 WPF 扩展工具包的 ChildWindow