Я действительно удивлен, что этот вопрос, похоже, еще не задан... если он есть, но я просто не мог его найти, извинения.
Хорошо, поэтому мой рабочий компьютер только что был обновлен с Windows 7 до Windows 8. К моему абсолютному ужасу, мое приложение WPF выглядит по-разному несколькими способами... разными, я имею в виду хуже, уродливее, элементы управления не выстроены правильно и т.д. Вот пример:
Windows 7:
Windows 8:
Проблемы с Windows 8 (только с этого изображения):
- Неверная строка заголовка, включая кнопки (Свернуть, Закрыть и т.д.).
- Неверный размер шрифта в строке заголовка
- Неверный FontWeight в заголовках (настройка Windows 7 SemiBold = настройка выделенной области Windows 8)
- Значок (или текст) смещен в строке заголовка
- Значок в строке заголовка очень размыт.
- Неправильные настройки заполнения и/или маржи, разделяющие элементы слева.
- Неправильные настройки заполнения и/или маржи, уменьшающие высоту текстового поля справа.
- "Скрытый" цвет выбора по умолчанию на элементах слева больше не скрыт
- Назад на передний флажок галочка
- Изображения на некоторых кнопках очень размыты.
Итак, мой вопрос таков:
Почему приложения WPF отличаются друг от друга между Windows 7 и Windows 8 и могут ли быть исправлены?
Чтобы прояснить это, я не вижу список различий между WPF в двух операционных системах. Я также не после исправлений для отдельных пунктов, перечисленных выше. Я бы хотел, чтобы кто-то объяснил, почему эти пользовательские интерфейсы выглядят иначе, например. что вызывает эти различия. Я также слышал разговоры о некоторых системных настройках в WPF, которые позволили бы мне заставить ПК отображать приложение, как если бы оно было на Windows 7, но я не знаю, насколько это было правдой.
ОБНОВЛЕНИЕ → >
Как @AndrasSebö любезно отметил, есть вопрос StackOverflow под названием тема Windows 7 для WPF?, которая устраняет аналогичную проблему для Windows XP. К сожалению, это никак не влияет на Windows 8. Есть ли там пользователи Microsoft, которые действительно знают, какие различия были реализованы, чтобы вызвать эту проблему? Или кто-нибудь?
ОБНОВЛЕНИЕ 2 → >
Хорошо, поэтому после некоторого тестирования я начинаю думать, что эта проблема не связана с темой Windows. Используя код, указанный в ответе @Gusdor, я попытался изменить тему на Aero
, и не было видимой разницы..., которая заставила меня задуматься. Затем я изменил его на Luna
, чтобы проверить этот код, и он сработал.
"Я работал", я имею в виду, что тема Windows изменилась, но элементы управления пользовательским интерфейсом или, точнее, остались некорректные Padding
и Margin
. Затем я попытался изменить тему на Luna
с помощью метода XAML, упомянутого @AndrasSebö, и произошло то же самое... ScrollBar
выглядел по-другому, поэтому я мог видеть, что тема изменилась, но проблема осталась.
Итак, теперь я думаю, что это может иметь какое-то отношение к тому факту, что это новый компьютер, над которым я работаю... может быть, есть какая-то dll или настройка, которую мне нужно установить? Я просто угадываю здесь - у меня есть вся платформа Microsoft.NET Framework, установленная до версии 4.5.1, поскольку я нахожусь в Windows 8.1.
Это абсолютный кошмар, поскольку у меня нет времени, чтобы пойти и исправить все представления в этом большом приложении. Пожалуйста, помогите, если сможете.