我有一个应用程序,我正在从一些测试版位升级 - 我的地图屏幕崩溃了。所以试图找到它的底部 - 我开始了一个全新的空白“赢得电话应用程序”。
参考Caliburn.Micro(昨晚刚从新代码构建)版本:caliburnmicro_1296ea635677(来自codeplex)
引用了Microsoft.phone.controls.map.dll
并在MainPage中添加了
<Grid>
<Maps:Map />
</Grid>
我向app.xaml添加了一个bootstrapper
<WP7:PhoneBootStrapper x:Name="bootstrapper" />
当页面在手机模拟器中运行时 - 主页面呈现,我看到了世界地图。如果我点击页面上的任何地方 - 我得到一个未处理的例外“参数不正确”
如果我删除
来自app.xaml的
- 地图正常运行。
你怎么看?感谢您的任何建议?
答案 0 :(得分:1)
我找到了答案。
这里的关键 - 我有这个设置和使用Beta模板 - 当我转移到VS2010中的WinPhone RTM模板时它停止工作。
Caliburn代表我做了一些工作,这是对RTM模板的“添加” - 它们相互冲突。最后这个问题与Bing Maps控件无关 - 就是这样 - 这是我的第一个屏幕 - 这就是我试图解决问题的地方。
这是一个非常有用的例外:
The parameter is incorrect
其中,我很确定会在任何屏幕上发生 - 如果你像我一样去了模板的升级路径。所以这就是我必须删除的 - 让一切恢复正常。在新的App.Xaml.cs中 - 我在App Ctor中删除了(通过评论...)
// Phone-specific initialization
// InitializePhoneApplication();
// Global handler for uncaught exceptions.
// UnhandledException += Application_UnhandledException;
然后我删除了这些方法体,因为在从ctor中删除InitializePhoneApplication()之后它只是死代码...
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
}
// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
}
// Code to execute when the application is deactivated (sent to background)
// This code will not execute when the application is closing
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
}
// Code to execute when the application is closing (eg, user hit Back)
// This code will not execute when the application is deactivated
private void Application_Closing(object sender, ClosingEventArgs e)
{
}
// Code to execute if a navigation fails
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
if (System.Diagnostics.Debugger.IsAttached)
{
// A navigation has failed; break into the debugger
System.Diagnostics.Debugger.Break();
}
}
// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
if (System.Diagnostics.Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
System.Diagnostics.Debugger.Break();
}
}
#region Phone application initialization
// Avoid double-initialization
private bool phoneApplicationInitialized = false;
// Do not add any additional code to this method
private void InitializePhoneApplication()
{
if (phoneApplicationInitialized)
return;
// Create the frame but don't set it as RootVisual yet; this allows the splash
// screen to remain active until the application is ready to render.
RootFrame = new PhoneApplicationFrame();
RootFrame.Navigated += CompleteInitializePhoneApplication;
// Handle navigation failures
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
// Ensure we don't initialize again
phoneApplicationInitialized = true;
}
// Do not add any additional code to this method
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
{
// Set the root visual to allow the application to render
if (RootVisual != RootFrame)
RootVisual = RootFrame;
// Remove this handler since it is no longer needed
RootFrame.Navigated -= CompleteInitializePhoneApplication;
}
#endregion
特别感谢Rob帮助解决这个谜团!