Czy ktoś znalazł przydatne rozwiązanie problemu DesignMode podczas tworzenia kontrolek?
Problem polega na tym, że jeśli zagnieżdżasz kontrolki, DesignMode działa tylko na pierwszym poziomie. Drugi i niższy poziom DesignMode zawsze zwróci FALSE.
Standardowy hack polegał na sprawdzeniu nazwy uruchomionego procesu i jeśli jest to „DevEnv.EXE”, to musi to być studio, więc DesignMode jest naprawdę TRUE.
Problem z wyszukiwaniem nazwy procesu przebiega przez rejestr i inne dziwne części, w wyniku czego użytkownik może nie mieć wymaganych uprawnień do wyświetlania nazwy procesu. W dodatku ta dziwna trasa jest bardzo powolna. Musieliśmy więc zebrać dodatkowe hacki, aby użyć singletona, a jeśli podczas pytania o nazwę procesu zostanie wyrzucony błąd, załóżmy, że DesignMode ma wartość FALSE.
Dobry, czysty sposób określenia DesignMode jest w porządku. Faktyczne przekonanie Microsoftu do wewnętrznego naprawienia tego frameworka byłoby jeszcze lepsze!