Скрыть значок из окна WPF
Я знаю, что есть много вопросов о том, как скрыть или убрать значок в верхнем левом углу окна WPF, где находится системное меню. Я'Я пробовал многие из них, но ни один не работает. Вот мои требования:
Значок исчезает и не занимает пустого места (т. Е. Нет прозрачного значка)Заголовок окна начинается прямо у левого края окнаКнопка закрытия в правом верхнем углу все еще там и работаетКнопки свертывания / разворачивания остаются, если они включены (необязательно, непроверить это)Нет пользовательского рисунка всей оконной рамыРаботает на Windows 7 с включенным Aero Glass (Windows 8 кто-нибудь?)Работает на 32 и 64-битных Windows (x86 и x64 build)Работает с WPF .NET 4.0Работает, когда не в отладчике, как Visual Studio (было бы неплохо, если бы он также работал в отладчике)Должно также работать на Windows XP (опционально)Доступные ответы в основном используют функции Windows API,GetWindowLong
SetWindowLong
а иногда иSetWindowPos
добавить расширенный стиль окнаWS_EX_DLGMODALFRAME
и позвонитьSWP_FRAMECHANGED
, Иногда другие стили также устанавливаются или не устанавливаются.
К сожалению, ничего из этого не работает вообще. У меня может не быть иконки без кнопки закрытия, или они все еще есть. Но это'Также заметно, что весь этот контент относится к 2010 году или ранее. Кажетсянацелены на более ранние версии .NET или Windows и терпят неудачу с тех пор.
Мы уже сравнивали стили окон системных диалогов (из Проводника) и моих окон WPF с Microsoft Spy ++ (включен в Visual Studio). Но я могу попытаться установить все флаги одинаково, значок выигралне уходи Это'Это как черная магия, которая отвергает любую другую функцию API или физику.
У кого-нибудь есть решение, которое все еще работает сегодня и в указанной среде?