none
win8审核应用 真机打开首页可以,点击菜单白屏 RRS feed

  • 问题

  • the app is launched normally

     when i tried open the tiles within the app they did not open

    this is only an example of the issue ,please inspect your app and address some form data may not be necessary and there fore left intentionally blank.

    是哪里的问题啊 求大神帮助本菜鸟
    2012年11月9日 0:49

答案

  • 多放几个Try Catch 估计可以捕获到你的异常。

    这里有点问题。你的代码访问了Sqlite数据库 但是在异步调用后,你的代码并没有被回调到UI线程中去处理UI 控件 ,这样的话会导致WrongThread异常。 我们知道UI控件仅可以在UI线程中被处理,所以你这里需要的代码是:

                await Window.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    db.CurriculumList.Add(new ImageDescription { Name = FolderName, Title = "Update", uri = "ms-appx:///images/bottomUpdate.png", lockuri = "" });
                    Curriculum.Width = db.CurriculumList.Count * 160;
                    if (Curriculum.Width < 1195)
                    {
                        Curriculum_.Width = Curriculum.Width;
                    }
                    CurriculumList = db.CurriculumList;
                    Curriculum.ItemsSource = CurriculumList;
                });

    试试看,因为代码片段也很难重现出你的问题,我只是通过阅读来辨别是否有一些错误在里面。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月9日 7:25
    版主

全部回复

  • 具体你有什么代码来处理你的点击和导航页面? 这个问题要解决需要一些代码或者信息,否则很难猜出问题根源。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月9日 2:54
    版主
  • 比如第一个按钮basicchinese:

    private void basicchinese_PointerPressed(object sender, PointerRoutedEventArgs e)
            {
                this.Frame.Navigate(typeof(basicchinese), "BasicChinese/BasicChineseLesson1");
            }

    导航到basichinese页面。

    protected override async void OnNavigatedTo( NavigationEventArgs e)
            {
                string[] abc = e.Parameter.ToString().Split(new char[]{'/'});
                FolderName=abc[0];
                LessonName = abc[1];
                switch (FolderName)
                {
                    case "Characters": bg_img.Source = new BitmapImage(new Uri("ms-appx:///images/22.png"));
                        FolderHide();
                        break;
                    case "Idiom": bg_img.Source = new BitmapImage(new Uri("ms-appx:///images/33.png"));
                        FolderHide();
                        break;
                    case "PinYin": bg_img.Source = new BitmapImage(new Uri("ms-appx:///images/44.png"));
                        FolderHide();
                        break;
                    case "Songs": bg_img.Source = new BitmapImage(new Uri("ms-appx:///images/55.png"));
                        FolderHide();
                        break;
                    case "SuperPanda": bg_img.Source = new BitmapImage(new Uri("ms-appx:///images/66.png"));
                        FolderHide();
                        break;
                    default: bg_img.Source = null;
                        break;
                }

    await db.Get_Name(LessonName);//这里是操作sqlite 数据库,查询有没有LessonName

                if (db.Name_ != null)
                {
                    bool isfileExisting = false;
                    try
                    {
                        StorageFolder destinationfolder = await Package.Current.InstalledLocation.GetFolderAsync("LoadLessons");
                        StorageFile storageFile = await destinationfolder.GetFileAsync(LessonName + ".zip");
                        isfileExisting = true;
                    }
                    catch
                    {
                        isfileExisting = false;
                    }
                    if (isfileExisting)
                    {
                        FolderDisplay();
                        Read_keysentences(LessonName, "keysentences.xml");
                        Read_description(LessonName, "description.xml");
                        Lesson.Source = new BitmapImage(new Uri("ms-appx:///" + FolderName + "/" + LessonName + "/cover.png"));
                        Video.Source = new BitmapImage(new Uri("ms-appx:///" + FolderName + "/" + LessonName + "/video.png"));
                    }
                    else
                    { 
                        
                    }
                    
                }
                await db.GetImageDescription(FolderName);
                db.CurriculumList.Add(new ImageDescription { Name = FolderName, Title = "Update", uri = "ms-appx:///images/bottomUpdate.png", lockuri = "" });
                Curriculum.Width = db.CurriculumList.Count * 160;
                if (Curriculum.Width < 1195)
                {
                    Curriculum_.Width = Curriculum.Width;
                }
                CurriculumList = db.CurriculumList;
                Curriculum.ItemsSource = CurriculumList;
                
            }

    2012年11月9日 3:26
  • 多放几个Try Catch 估计可以捕获到你的异常。

    这里有点问题。你的代码访问了Sqlite数据库 但是在异步调用后,你的代码并没有被回调到UI线程中去处理UI 控件 ,这样的话会导致WrongThread异常。 我们知道UI控件仅可以在UI线程中被处理,所以你这里需要的代码是:

                await Window.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    db.CurriculumList.Add(new ImageDescription { Name = FolderName, Title = "Update", uri = "ms-appx:///images/bottomUpdate.png", lockuri = "" });
                    Curriculum.Width = db.CurriculumList.Count * 160;
                    if (Curriculum.Width < 1195)
                    {
                        Curriculum_.Width = Curriculum.Width;
                    }
                    CurriculumList = db.CurriculumList;
                    Curriculum.ItemsSource = CurriculumList;
                });

    试试看,因为代码片段也很难重现出你的问题,我只是通过阅读来辨别是否有一些错误在里面。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月9日 7:25
    版主