Индикатор выполнения в стиле Windows 98 - PullRequest
6 голосов
/ 08 октября 2010

Я использую Windows 7, так что все мои индикаторы выполнения имеют зеленый оттенок.Я хотел бы что-то более упрощенное, хотя, возможно, что-то похожее на индикатор выполнения Windows 98.

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

Ответы [ 4 ]

7 голосов
/ 08 октября 2010

Вы не можете легко получить точный Win98 взгляд без довольно радикального переписывания элемента управленияНо простой плоский голубой индикатор выполнения можно получить, отключив визуальные стили.Как это:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

class SimpleProgressBar : ProgressBar {
    protected override void OnHandleCreated(EventArgs e) {
        base.OnHandleCreated(e);
        if (Environment.OSVersion.Version.Major >= 6) {
            SetWindowTheme(this.Handle, "", "");
        }
    }
    [DllImport("uxtheme.dll")]
    private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
}
1 голос
/ 04 февраля 2012

Мне нравится ответ Ганса, но нет необходимости переопределять класс элемента управления.Вы можете удалить стиль Win7 из отдельного элемента управления, просто вызвав SetWindowTheme с помощью ручки элемента управления.Вот пример:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace MyApplication
{
    public partial class Form1 : Form
    {
        [DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
        public extern static Int32 SetWindowTheme(IntPtr hWnd,
                      String textSubAppName, String textSubIdList);

        public Form1()
        {
            InitializeComponent();

            // Remove Win7 formatting from the progress bar.
            SetWindowTheme(progressBar1.Handle, "", "");
1 голос
/ 08 октября 2010

Шаг 1: Загрузить COMCTL32.ocx (версия 5).Я считаю, что версия 5 распространяется повторно, а версия 6 - нет.Ссылка, на которую я ссылаюсь, вероятно, не является повторной, но на этом я и проверил эти шаги.
Шаг 2. Настройте свою панель инструментов и выберите файл, который вы скачали на вкладке «Компоненты COM» (просмотрев его).
Шаг 3. Добавьте индикатор прогресса из новых записей панели инструментов.

Примечание. В конструкторе он все равно будет выглядеть как новый индикатор прогресса.

0 голосов
/ 08 октября 2010

Я не проверял это ... на машине с XP сейчас ... но я подозреваю, что если вы отключите "Стили Windows XP" в настройках фреймворка для своего приложения, вы получите то, что ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...