Visual Studio 2017引入了一个新窗口来帮助进行移动开发 - “窗体预览器”窗口。
有没有人发现如何检测这种模式呢?
我有一些遥测代码,它会抛出异常,因为它尚未初始化 - 因此需要检测这种“设计”模式。
答案 0 :(得分:2)
现在Xamarin.Forms直接支持此功能,您可以使用其内置的Xamarin.Forms.DesignMode
类:
if (DesignMode.IsDesignModeEnabled)
{
// Previewer only code
}
请参见https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-previewer
答案 1 :(得分:1)
以前,如果未创建应用实例,则可以检测设计模式,如下所示:
if (Application.Current==null)
{
// design mode
}
在Xamarin Studio 6.2中,即使在设计模式下也会创建应用程序实例,因此我们无法像这样使用它。您可以做的是创建自定义标志IsInDesignMode = true并将其从未在设计模式下运行的位置更改为false,如OnStart:
protected override void OnStart()
{
FakeViewModels.IsInDesignMode = false;
}
然后在任何地方使用它:
if (FakeViewModels.IsInDesignMode == false)
{
this.BindingContext = this;
}
还记得App()构造函数,因此第一次导航发生在OnStart()之前,所以使用上面的方法不会涵盖你导航到的第一页。