Принудительное использование стиля «Windows XP» для исполняемого файла на основе форм c #, даже в Vista, 7 и т. Д. - PullRequest
1 голос
/ 27 января 2011

Я написал приложение с использованием Visual Studio 2008 на компьютере с Windows XP.Все стили формы здесь выглядят идеально.

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

Я читал, что во время сборки встраивание манифеста в мой код может «сказать» Windows 7, что я хочу использовать стиль формы (классический стиль), в котором я его создал, независимо от того, в какой ОС я работаюна.Но, похоже, это вложение уже выполняется по умолчанию (так что это не решение для меня).

Спасибо за любые мысли!

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Вы используете формы Windows или Wpf? Если вы используете формы Windows, попробуйте удалить строку «Application.EnableVisualStyles» из Program.cs

0 голосов
/ 27 января 2011

В файле манифеста вы добавите следующий код под тегом сборки

 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->

      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!-- for windows 7-->

    </application>
  </compatibility>

  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>
</asmv1:assembly>
...