Кто-нибудь нашел полезное решение проблемы DesignMode при разработке элементов управления?
Проблема в том, что при вложении элементов управления режим DesignMode работает только для первого уровня. DesignMode второго и более низких уровней всегда будет возвращать FALSE.
Стандартный взлом заключался в том, чтобы посмотреть на имя запущенного процесса, и если это «DevEnv.EXE», то это должна быть студия, поэтому DesignMode действительно ИСТИНА.
Проблема, связанная с поиском ProcessName, проходит через реестр и другие странные части с конечным результатом, что у пользователя может не быть необходимых прав для просмотра имени процесса. Вдобавок этот странный маршрут очень медленный. Таким образом, нам пришлось нагромождать дополнительные хаки для использования синглтона, и если при запросе имени процесса возникает ошибка, предположим, что DesignMode имеет значение FALSE.
Хороший чистый способ определить DesignMode в порядке. На самом деле было бы даже лучше заставить Microsoft исправить это внутри фреймворка!