Brian C Hart Ответов: 1

Как мне получить доступ к любому элементу управления, который будет отображать метрополитен-подобный счетчик прогресса в winform?


Привет, я не уверен, что даже правильно использую это имя, но я искал google и google search для этого в течение бесчисленного количества лет, и до сих пор я не смог найти ссылку на то, какой элемент управления или Windows API я вызываю, чтобы получить управление колесом прогресса/spinner с маленькими точками, которые счастливо кружатся вокруг, например, во время загрузки Windows 10 и т. д.

Здесь отображается снимок экрана с колесом управления/прогресса, о котором я говорю:

Скриншот загрузочного экрана Windows 10 с колесом прогресса[^]

Обратите внимание на предмет в красном круге на картинке, связанной выше. Есть ли функция Windows API, метод, Класс C# или элемент управления где-то глубоко в недрах Windows API/MSDN, которого мне просто не хватает?

Кроме того, я хочу знать, доступно ли это для C# WinForms. Я знаю, что потенциально может быть что-то также доступно для WPF, так что, если у кого-то также есть какая-то информация об этом, это было бы очень полезно. Спасибо.

Что я уже пробовал:

Google искал в основном, но я не знаю, какие именно поисковые слова/ключевые слова использовать, потому что не знаю, как называется этот "контроль".

Richard Deeming

Может быть, вы могли бы адаптировать код из этой статьи 2007 года?
Как написать анимацию круга загрузки в .NET?[^]

1 Ответов

Рейтинг:
0

Gerry Schmitz

То, что вы имеете в виду, - это (как правило) "курсор ожидания".

Тот, который я использую в WPF, находится ниже; завернутый в using; вокруг кода "ожидания".

Не знаю, сможете ли вы настроить его на то, что хотите. Для киоска я создал свое собственное (большее) окно "wait (for it) window" (раскадровка WPF с вращающейся звездочкой и сообщением о состоянии).

using System;
using System.Windows.Input;

namespace xxx.Common {

   public class WaitCursor: IDisposable {

      private Cursor _previousCursor;

      public WaitCursor() {
         _previousCursor = Mouse.OverrideCursor;
         Mouse.OverrideCursor = Cursors.Wait;
      }

      public void Dispose() {
         Mouse.OverrideCursor = _previousCursor;
      }

   }  // end class.
}


Brian C Hart

Привет Джерри,

Спасибо за идею. Однако мне неясно, будет ли ваше предлагаемое решение отвечать моим потребностям (извините, я не знаю WPF и не знаю, буду ли я когда-нибудь программировать в нем, я парень WinForms).

У вас была возможность взглянуть на картинку в моем вопросе о том, что я конкретно ищу?

Я просто обеспокоен тем, что предоставленный вами код поместит на экран маленький крошечный синий пончик вместо курсора мыши "стрелка" - что я уже знаю, как это сделать, - однако я специально ищу эти забавные "точки", которые выглядят точно так же, как версия экрана Winlogon.

Я убежден, что он должен быть похоронен где-то в операционной системе в качестве элемента управления. Но если я ошибаюсь, то у меня действительно нет ни малейшего представления о том, как его воспроизвести.

Так что я очень ценю вашу помощь, однако это не то, что я ищу.