我需要从click事件中调用xaml文件,我使用c#进行开发。我已经创建了Xaml文件并完成了设计部分,现在我需要从我的应用程序中调用这个xaml文件。我尝试了以下
NavigationService.Navigate(new Uri("/xxx.xaml", UriKind.Relative));
但是它给了我以下错误,
unauthorized access exception was unhandled.
Invalid cross-thread access.
这有什么问题?我在我的一个函数之间调用这个xaml文件,我需要在这个函数中显示用.xaml
指定的屏幕。
答案 0 :(得分:3)
好像你试图从后台线程调用Navigate
方法。从UI线程调用它,如下所示:
Dispatcher.BeginInvoke(() =>
{
NavigationService.Navigate(new Uri("/xxx.xaml", UriKind.Relative));
});
从评论中编辑:
Dispatcher.BeginInvoke(() =>
{
if(MessageBox.Show("message", "title", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
NavigationService.Navigate(new Uri("/xxx.xaml", UriKind.Relative));
}
});