Почему MonthCalendar выглядит иначе в сторонних приложениях? - PullRequest
1 голос
/ 19 января 2011

В настоящее время я работаю над плагином dll для стороннего приложения.Часть моей DLL включает всплывающее окно с System.Windows.Forms.MonthCalendar в нем.Теперь, когда я работаю над этим в Visual Studio и когда я открываю всплывающее окно с тестовым приложением, которое я написал, оно выглядит одним способом, но когда стороннее приложение открывает его, оно выглядит иначе.Помимо того, что они выглядят по-разному, они также ведут себя по-разному.У кого-нибудь есть идеи почему?Одна вещь, которая, как я думал, может быть проблемой, заключается в том, что моя dll построена на .Net 3.5, а стороннее приложение - .Net 2.0 (я думаю).Но когда я построил свое тестовое приложение как .Net 2.0, оно все равно работало так же.

Вот что я ожидаю:

alt text

И вот что яполучаю:

alt text

1 Ответ

4 голосов
/ 19 января 2011

Стороннее приложение не поддерживает визуальные стили и поэтому использует классическую тему пользовательского интерфейса Windows. Обратите внимание, что кнопки и поля со списком также не выглядят одинаково. Вам потребуется включить визуальные стили в стороннем приложении, чтобы применить к нему текущую тему Windows.

(В качестве упражнения попробуйте переключить свои настройки Windows на использование классической темы, а затем посмотрите на работающее тестовое приложение - оно должно выглядеть идентично стороннему.)

...