WPF обещает нам много приятных вещей, но некоторые из них не соответствуют нашим ожиданиям.
Одним из примеров является окно без полей. Так что этот простой код добавлен в Xaml окна:
AllowsTransparency="True"
Background="Transparent"
WindowStyle="None"
заставит меня выглядеть так: (не обращайте внимания на уродливые цвета, которые они испортили во время обрезки экрана)
альтернативный текст http://img29.imageshack.us/img29/5759/withoutborder.png
Слишком хорошо, чтобы быть правдой?
Да, это так!
Это выглядит красиво, но как только пользователь пытается выбрать что-то из ComboBox, он не может этого сделать, потому что он открывается позади !! - да за окном. Конечно, тогда он не может видеть ничего, что не очень практично.
Это связано с известной ошибкой Windows XP, больше здесь .
Мне посчастливилось разрабатывать на машине с XP, иначе я бы не узнал об этом, пока меня не поразили бы отрицательные отзывы моих пользователей ... что заставляет меня задуматься, почему эта ошибка не упоминается где угодно, где объясняется эта «замечательная» функция прозрачного окна (например, книги, MSDN и т. д.)
Даже если упомянутое исправление (ссылка выше) может работать, я не буду требовать, чтобы мои пользователи загружали исправления, просто чтобы мои окна выглядели хорошо.
Вот почему я ищу лучшее решение, может, кто-то что-то понял?
До этого мои окна должны будут выглядеть так:
альтернативный текст http://img29.imageshack.us/img29/1570/withborder.png
Не очень приятно, как вы можете видеть, так что вы можете представить, как я ценю любые решения.
UPDATE:
Тем временем я подтвердил, что это проблема только при использовании нескольких мониторов (в моем случае Extended Desktop).
После установки исправления проблема полностью исчезла (даже с расширенным рабочим столом).
Загрузка исправления была болью. Почему Microsoft заставляет вас дать им электронное письмо, чтобы затем отправить вам ссылку на файл, защищенный паролем, который затем необходимо извлечь вручную, чтобы наконец установить исправление ошибки?
Они серьезные?
Разве они не должны упростить пользователям исправление ошибок Microsoft?
Как я могу сказать своим пользователям (которые, возможно, не настолько склонны к компьютерам, как мы, разработчики), зайти на какой-то сайт, ввести электронную почту (о, да и капчу - я думаю, Microsoft боится, что компьютеры крадут свои исправления ошибок LOL), а затем пройти вышеописанный процесс?
В любом случае, я остановлюсь здесь, прежде чем вопрос превратится в совершенно другой вопрос, который заставляет меня подчеркнуть, что теперь я еще больше ищу альтернативные решения проблемы.