C# 类型为'的首次机会例外;System.Windows.Markup.XamlParseException';发生在System.Windows.ni.dll中
C#代码如下C# 类型为'的首次机会例外;System.Windows.Markup.XamlParseException';发生在System.Windows.ni.dll中,c#,windows-phone-8,C#,Windows Phone 8,C#代码如下 public partial class zoom1: PhoneApplicationPage { // Constructor public zoom1() { InitializeComponent(); //the erroe is shown here } private async void SetBackground1(object sender, RoutedEventArgs e) {
public partial class zoom1: PhoneApplicationPage
{
// Constructor
public zoom1()
{
InitializeComponent(); //the erroe is shown here
}
private async void SetBackground1(object sender, RoutedEventArgs e)
{
if (await LockScreenManager.RequestAccessAsync() == LockScreenRequestResult.Granted)
{
var uri = new Uri("ms-appx:///Assets/LockScreens/People/1.jpg", UriKind.Absolute);
LockScreen.SetImageUri(uri);
MessageBox.Show("Your new lockscreen background has been set.");
}
else
{
MessageBox.Show("You said no, so I can't update your background.");
}
}
}
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" Opacity="0.5" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="Assets/Buttons/Check.png" Text="Set" Click="SetBackground1"/>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
该错误是在我将click=”“添加到AppBarButton后生成的。
XAML代码如下
public partial class zoom1: PhoneApplicationPage
{
// Constructor
public zoom1()
{
InitializeComponent(); //the erroe is shown here
}
private async void SetBackground1(object sender, RoutedEventArgs e)
{
if (await LockScreenManager.RequestAccessAsync() == LockScreenRequestResult.Granted)
{
var uri = new Uri("ms-appx:///Assets/LockScreens/People/1.jpg", UriKind.Absolute);
LockScreen.SetImageUri(uri);
MessageBox.Show("Your new lockscreen background has been set.");
}
else
{
MessageBox.Show("You said no, so I can't update your background.");
}
}
}
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" Opacity="0.5" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="Assets/Buttons/Check.png" Text="Set" Click="SetBackground1"/>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
您是否在没有异步的情况下尝试过它?另外,中的示例使用了EventArgs
而不是RoutedEventArgs
,但我不确定这是否会导致您看到的异常。您能告诉我们错误发生在哪一行吗?错误似乎与显示的代码不匹配。现在我添加了C#和XAML代码。当我删除Click=”“时,则不会显示此类型的异常。但是我的AppBarButton不起作用。我必须进行测试才能确定,但我认为它不喜欢你的SetBackground1
方法上的异步签名。我创建了一个新项目,用相同的代码进行测试,但这次没有显示异常。我想在我的主项目中删除此异常。请添加调用stackLockScreenManager。RequestAccessAsync()在没有Async的情况下无法工作。请首先找出异常的原因,我认为问题在于SetBackground1方法。当我从MainPage.xaml导航到Zoom1.xaml时,由于这个异常,导航失败。如果我从Zoom1.xaml中删除Click=“”,导航将成功完成。