Приложение Windows Forms - Визуальный стиль? - PullRequest
7 голосов
/ 23 ноября 2011

Я постараюсь сделать это как можно проще.

Кнопка, созданная в приложении Windows Forms, выглядит следующим образом:

enter image description here

Если ясоздайте форму вручную, кнопки, которые я создаю, будут выглядеть так:

enter image description here

Я тщательно просмотрел приложение Windows Forms и не нашел кода, который изменял бы визуальный стиль кнопок.*

Есть ли какое-то простое объяснение, почему это происходит?

Заранее спасибо.

Ответы [ 4 ]

11 голосов
/ 23 ноября 2011

Вам потребуется вызвать метод EnableVisualStyles, который по умолчанию вызывается в методе Main класса Program перед вызовом Application.Run (при создании форм Windows Forms).проект, с автоматически сгенерированным кодом).

Этот метод включает визуальные стили для приложения.Визуальные стили - это цвета, шрифты и другие визуальные элементы, которые формируют тему операционной системы.Элементы управления будут отображаться с визуальными стилями, если они поддерживаются элементом управления и операционной системой.Чтобы получить эффект, EnableVisualStyles() необходимо вызвать перед созданием любых элементов управления в приложении;обычно EnableVisualStyles() - это первая строка в функции Main.Для включения визуальных стилей при вызове EnableVisualStyles().

отдельный манифест не требуется.
3 голосов
/ 23 ноября 2011

Убедитесь, что вы установили кнопки UseVisualStyleBackColor на true и что вы вызываете Application.EnableVisualStyles(); в своем коде запуска.

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new frmAddress());
    }

}

РЕДАКТИРОВАТЬ: Эффект UseVisualStyleBackColor:

enter image description here

1 голос
/ 23 ноября 2011

Даже если у вас включены визуальные стили (по умолчанию), часть отображения кнопки управляется операционной системой вне контроля вашей программы. Та же программа, работающая в Windows 7 со стандартным интерфейсом, будет выглядеть иначе, чем в классическом режиме.

Жирный акцент добавлен к отрывку из документа, чтобы проиллюстрировать этот момент.

http://msdn.microsoft.com/en-us/library/y6kzhf8d(VS.80).aspx

Windows XP представила новый внешний вид для пользователя Windows интерфейс, с элементами управления, которые имеют закругленные углы и которые меняются цвет, когда вы наведите курсор мыши на них. По умолчанию на базе Windows приложения, созданные с помощью Visual Basic, автоматически поддерживают визуальные стили, также известные как темы Windows XP. При запуске на платформе, которая не поддерживает темы Windows XP, приложение возвращается к традиционные окна выглядят и работают. Если вы не хотите, чтобы ваш Приложение для поддержки визуальных стилей, вы можете изменить свойство на Страница приложения дизайнера проекта.

Также отсюда: http://msdn.microsoft.com/en-us/library/ms171733(VS.80).aspx

в разделе Проверка поддержки визуальных стилей .

для работы визуальных стилей должны выполняться следующие условия:

  • Операционная система поддерживает визуальные стили.
  • Пользователь включил визуальные стили в операционной системе.
  • В приложении включены визуальные стили.
  • Визуальные стили используются для рисования клиентской области окон приложения.
0 голосов
/ 08 июля 2013

У меня была похожая проблема. До VS 2010 создание пользовательского файла манифеста выполняло свою работу. Однако в Visual Studio 2010 это не работает, поскольку VS создает новый файл с именем app.manifest внутри папки My Project. Таким образом, чтобы включить визуальные стили, все, что вам нужно сделать, это отредактировать этот файл из проекта в Visual Studio и раскомментировать строки ниже

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...