带嵌套控件的DesignMode

在开发控件时,是否有人找到针对DesignMode问题的有用解决方案?


问题是,如果您嵌套控件,则DesignMode仅适用于第一级。第二和较低级别的DesignMode将始终返回FALSE。


标准的技巧是查看正在运行的进程的名称,如果它是“ DevEnv.EXE”,那么它必须是studio,因此DesignMode确实为TRUE。


这样做的问题是寻找ProcessName在注册表和其他奇怪的部分中工作,最终结果是用户可能没有查看进程名称所需的权限。此外,这条奇怪的路线非常慢。因此,我们不得不堆积更多的骇客才能使用单例,并且如果在询问进程名称时抛出错误,则假定DesignMode为FALSE。


确定DesignMode的一种好方法是按顺序进行的。最终让Microsoft将其内部修复到框架中会更好!


白衣染霜花
浏览 532回答 3
3回答

鸿蒙传说

为什么不检查LicenseManager.UsageMode。此属性的值可以为LicenseUsageMode.Runtime或LicenseUsageMode.Designtime。您是否要让代码仅在运行时中运行,请使用以下代码:if (LicenseManager.UsageMode == LicenseUsageMode.Runtime){  bla bla bla...}
打开App,查看更多内容
随时随地看视频慕课网APP