Try-catch无法加载XAML资源

时间:2016-08-31 09:56:46

标签: c# wpf xaml visual-studio-2015 try-catch

我有这些代码:

    private void btnPlanning_Click(object sender, RoutedEventArgs e)
    {
        LoadPage("PlanningView.xaml");
    }

    private void LoadPage(string APage)
    {
        try
        {
            frameMainView.Source = new Uri(APage, UriKind.Relative);
        }
        catch (Exception ex)
        {
            string errorString = $"Resource <{APage}> not found! ";
            DoLogD(errorString + " " + ex.Message);
            MessageBox.Show(errorString);
        }
    }

单击 btnPlanning 按钮,调用 LoadPage ,传递一个字符串,其中包含我要在帧控件 frameMainView

如果给定的资源不存在,我想捕获异常并通知用户。

问题是,当我点击按钮(并且资源不存在)时,无论如何我都会遇到

  

PresentationFramework.pdb未加载

和内部 System.IO.IOException 告诉我资源不可用。

为什么我的try-catch块不起作用?

2 个答案:

答案 0 :(得分:1)

有很多方法可以将页面加载到框架中:

  1. 通过设置来源

    frameMainView.Source = new Uri(“PlanningView.xaml”,UriKind.RelativeOrAbsolute);

  2. 通过设置内容:

    frameMainView.Content = new PlanningView();

  3. 使用NavigationService:

    frameMainView.NavigationService.Navigate(new PlanningView());

答案 1 :(得分:-1)

这是用户界面初始化问题。您可以从Visual Studio“输出”窗口获得更多信息吗?