在开发控件时,是否有人找到了解决 DesignMode 问题的有用方案?
问题是,如果您嵌套控件,那么 DesignMode 仅适用于第一级。第二级和更低级别的 DesignMode 将始终返回 FALSE。
标准的方法是查看正在运行的进程的名称,如果它是“ DevEnv.EXE”,那么它必须是工作室,因此 DesignMode 是真实的。
问题是寻找 ProcessName 在注册表和其他奇怪的部分中循环,最终的结果是用户可能没有查看进程名所需的权限。此外,这条奇怪的路线非常缓慢。因此,我们必须堆积额外的技巧来使用一个单例,如果在询问进程名称时抛出一个错误,那么假设 DesignMode 是 FALSE。
确定 DesignMode 的一种干净的方法是合适的。实际上,让微软内部修复它的框架会更好!