Common controls (индикатор прогресса)


Содержание

Common controls (индикатор прогресса)

public class MyControl: Control <

Обратите внимание на три вещи. Первый параметр этого варианта конструктора класса TooiboxBitmapAttribute принимает объект Туре, который нужен только для того, чтобы определить сборку, в которой находится требуемый ресурс. Следовательно, это может быть любой тип, определенный в сборке проекта. Второй параметр конструктора чувствителен к регистру. Если файл значка находится в каталоге, отличном от каталога проекта (например, во вложенной папке) и этот файл был добавлен в проект через меню Open Link File (то есть без копирования в каталог проекта), то при указании имени изображения во втором параметре конструктора нужно добавить к названию файла имя папки через точку (например, images .One. ico ).

Создание собственного элемента управления SmoothProgressBar

в заключение мы приведем пример создания собственного элемента управления SmoothProgressBar, который будет ЯВЛЯТЬСЯ реализацией индикатора прогресса с собственным стилем, отличающимся от стандартного индикатора прогресса ProgressBar, который ВХОДИТ В состав .NET Framework. Данный пример основан на статье How to create а smooth progress bar in Visual C# 2005 or in Visual C# .NET из Базы Знаний Microsoft, которую вы можете найти по адресу http: support.microsoft.com/kb/323116/. В ранних версиях элемента управления ProgressBar Существовало два вида индикатора прогресса. Если у вас установлен пакет Visual Basic 6.0, то вы можете увидеть эти два различных стиля работы элементы. Запустите Visual Basic 6.0, выберите в меню Project Components. и в диалоговом окне Components выберите пункт Microsoft Windows Common Controls 6.0 (SP6), который добавит в проект группу элементов ActiveX, в число которых входит и ProgressBar (рис. 6.12).

Далее на панели инструментов найдите элемент ProgressBar и добавьте его на форму. В окне свойств у индикатора прогресса вы увидите свойство Scrolling, состоящее из двух значений- ccscroiiingstandart (Стандартный) и ccScrollingSmooth (ПлавНЫЙ).

Ccntrols Designers j Insertabfe Objects \

: Microsoft Visio Viewer 12.0 Type Ubrary Microsoft Voice Commands .Microsoft Voice Dictation Microsoft Voice Text

Microsoft WindovrfS Common Controls 5.0 (SP2 >. Microsoft Windows Common Controls 6.0 (SP6 . Microsoft Windows Common Controls-2 5,0 (S Microsoft Windows Common Controls-2 6.0 Microsoft VVindov/s Common Contro!s-3 6,0 Microsoft Winsock Control 6,0 I MS Video Control LO Type Libra-y . MSFlexGrid Wizard , Msie ActiveX Control module

Г Selected Items Only

Location: C: \VWJDaVs/S\system32\asctrls.ooJ

Рис. 6.12. Диалоговое окно Components в Visual Basic 6.0

чщес61 — Microsoft Visual Basic [deiig-Гогт1 (FOrmjJ

view Project Format Debug Run Query Diagram lools fidd-lns Windmv Нф

i — Projectl (Projectl)

I Q. Forml (Formll

jProgressBari ProgressBar Alphabetic j Cetegorized

0 — ccOLEDropNone л

Returns/sets a value that determines ivhether the control displays progress with a standard segmented

Рис. 6.13. Два вида индикатора прогресса в Visual Basic

Создание элемента SmoothProgressBar

Но вернемся к Visual С# 2008. Платформа .NET Framework поддерживает только стандартный стиль для индикатора прогресса. Наша цель — разработать свой элемент управления, который будет поддерживать следующие свойства:

□ Minimum- СВОЙСТВО, позволяющее получать или устанавливать минимальное из допустимых значений индикатора прогресса. По умолчанию данное свойство будет установлено в 0. Использовать отрицательные значения в этом свойстве недопустимо;

П Maximum- СВОЙСТВО, позволяющее получать или устанавливать максимальное из допустимых значений индикатора прогресса. По умолчанию значение данного свойства равно 100;

П Value — это СВОЙСТВО получает или устанавливает текущее значение- индикатора прогресса. Значение этого свойства не должно выходить за диапазон, ограниченный свойствами Minimum и Maximum;

П ProgressBarCoior- ЭТО СВОЙСТВО получает ИЛИ устанавливает цвет полоски индикатора прогресса.

Опишем процесс создания собственного элемента управления

SmoothProgressBar ПО шагам.

1. Запустите Microsoft Visual Studio 2008.

2. В меню File выберите команды New Project.

3. В диалоговом окне New Project выберите раздел Visual С# Windows и в списке шаблонов выберите Windows Control Library.

4. В поле Name введите новое имя SmoothProgressBar И нажмите кнопку ОК.

5. В окне Project Explorer замените имя по умолчанию для модуля класса с UserControl 1.CS н SmootliProgressBar.cs.

Первая часть приготовлений к созданию индикатора прогресса закончена. Теперь приступим к написанию кода для разрабатываемого элемента. Откройте редактор кода для файла SmootliProgressBar.cs и вставьте код, приведенный в листинге 6.74.

Плавный стиль заполняет индикатор прогресса сплошной цветной полосой, а стандартный стиль имеет вид маленьких блоков, состоящих из прямоугольников (рис. 6.13).

Common controls (индикатор прогресса)

Что такое ActiveX?
Мой дорогой друг. Когда ты устанавливал на жесткий диск Visual Basic 6.0, то в твой компьютер скачалось много всякого добра, и в том числе куча файлов средств управления ActiveX. Эти файлы лежат в c:\Windows\System или c:\Windows\System32 и имеют расширение .ocx. Большинство этих файлов представляют собой отдельные средства ActiveX, но например, тот, что мы будем рассматривать сегодня (Microsoft Windows Common Controls 6.0) включает в себя аж девять средств управления ActiveX. Некоторые средства ActiveX перечислены на странице «Элементы ActiveX». Сегодня мы поговорим о некоторых.

Начнем с самых нужных и используемых. Одним из таких средств является индикатор хода выполнения — Progress Bar. Если ты достаточно наблюдателен,то наверняка заметил,что при выполнении длительных процессов (копирование файлов, загрузка программ и т.п.) Windows выводит на экран окошко, где синенькая полосочка (индикатор хода выполнения процесса), постепенно увеличиваясь в длине, показывает, какой объем процесса выполнен, и вообще скорость процесса. Индикатор хода выполнения позволяет юзеру не нервничать и утешаться тем, что процесс худо-бедно идет, что он успеет раза два покурить и что компьютер не завис.

Элемент ActiveX: ProgressBar.
Чтобы приступить к использованию Progress Bar, его надо сперва добавить в панель инструментов нашего нового exe-проекта (по-скольку это средство управления ActiveX храниться в файле mscomctl.ocx). Сделать это — раз плюнуть. Для этого надо создать exe-проект, затем в меню Проект надо щелкнуть по строке Компонеты (Рис.22)

Рисунок 22.
Затем, в открывшемся окне списка средств управления найди строку Microsoft Windows Common Controls 6.0 , щелкни в этой строке по полю флажка, поставив галочку и нажми кнопку OK на окне (Рис.23).

Рисунок 23.
У тебя в панели инструментов появилось сразу несколько объектов. И в том числе ProgressBar (Рис.24). Аналогично добавляются и другие средства ActiveX из других файлов.

Рисунок 24.
Теперь ты можешь перетащить его на форму и начать с ним работать. Он будет называться ProgressBar1. Основными свойствами, которыми мы будем пользоваться являются:
.Min — минимальное числовое значение, с которого шкала начнет работать
.Max — максимальное числовое значение, на котором шкала дойдет до конца.
.Value — текущее числовое значение шкалы
кроме того можно использовать
.Scrolling — меняет прерывистую шкалу (0-ccScrollingStandard) на непрерывную (1-ccScrillingSmooth)
.Orientation — установка в вертикальное (если приспичило) или горизонтальное положение
Кроме того, понятно, что имеются всякие стандартные свойства (типа высота-длина, видимый-невидимый и т.п), о которых и говорить-то нечего.

Вообще использовать ProgressBar имеет смысл только в циклах (любых). Ты задаешь начальное и конечное значение, а значение ProgressBar.Value меняется именно в цикле. Собственно именно оно и заставляет шкалу изменяться. Использование этого объекта рассмотри на примере программы Generator, которая иммитирует игрушки-гадалки. Знаешь такие китайские игрушки: загадаешь желание, крутанешь шарик, а он потом остановится и лампочка зажжется у слова типа «Никогда» или «Скоро». Так вот, у нас у аналогичных слов (они заданы в окне свойств, а не в коде) будет останавливаться шкала ProgressBar со свойством .Scrolling1-ccScrillingSmooth (неперывная).
Объявим две переменные: первая для хранения сгенерированного случайного числа, вторая — просто для цикла.

Dim MyValue As Long
Dim x As Long

Положим на форму командную кнопку Command1 и в ней напишем процедурку

Private Sub Command1_Click()

Здесь мы используем генератор случайных чисел. Мы уже использовали генерирование случайных чисел в Главе 3 при создании программы «Однорукий бандит», хоть и без оператора Randomize. Этот оператор просто генерирует число и передает его в качестве опорного в функцию Rnd, которая в свою очередь на основе этого числа генерирует случайное число от 0 до 1.

Randomize ‘ Инициализирует генератор случайных чисел.


Поскольку, функция Rnd возвращает число, меньшее единицы, мы умножаем его на 10000, а чтобы избежать нулевого значения, прибавляем единицу. Кроме того, получившийся результат округляем до целого числа с помощью функции Int. Эта функция просто отбрасывает дробную часть (а на самом деле не округляет). Синтаксис ее: Int(число). Аналогична ей функция Fix(число), которая работает так же, как и Int, но при округлении отрицательного числа приближает его к числу большему или равному, в то время как Int — к меньшему или равному.

MyValue = Int((10000 * Rnd) + 1) ‘ Возвращает случайное число от 1 до 10000.

Далее уже задаем начальное (1) и конечное (10000) значение ProgressBar1.

ProgressBar1.Min = 1
ProgressBar1.Max = 10000

Теперь организуем цикл от единицы до полученного нами случайного числа.
В нем при каждом его выполнении значение ProgressBar1.Value изменяется, что отображается на изменении шкалы.

For x = 1 To MyValue
ProgressBar1.Value = x
Next x
End Sub

Вот и вся программка. Да, еще хочу сказать, что число 10 000 выбрано для того, чтобы ProgressBar работал достаточно медленно. Скачать исходник можно вверху страницы.

При загрузке файла средств управления общего назначения в панели инструментов появились и другие объекты ActiveX. Обратим наши взоры на средство Slider, которое располагается через один и ниже ProgressBar’а, думаю, найдешь.

Элемент ActiveX: Slider.
По сути своей этот элемент очень похож на объект «полоса прокрутки ScrollBar«, который мы разбирали в Главе 4. Главными отличиями его являются внешний вид: Slider представляет собой линейку с бегунком и отметками-маркерами (тиками), а также то, что его максимальное значение не ограничено, как у ScrollBar’а значением 32767. Элемент этот простой, я не буду повторять описание его свойств .Min, .Max, .Value и т.п. Если пропустил, посмотри выше на этой странице. Однако у Slider’а есть и другие свойства:

.LargeChange — величина, на которую изменится положение бегунка при щелчке мышью по слайдеру
.TickFrequency — определяет с какой частотой на слайдере будут располагаться маркеры (тики). Например, если у нас Sl >
Как работать со слайдером, мы разберем примере программки SliderPic (скачать ее можно вверху страницы). Практического применения ей я не вижу, но она иллюстрирует, как с помощью слайдера можно изменять объекты. В нашем случае мы с помощью двух слайдеров — горизонтального и вертикального будем менять, соответственно, ширину и высоту Picture для того, чтобы в нее влезла картинка. Сразу оговорюсь, что поскольку единица измерения размеров объектов в VB принята почему-то в твипах, я все в твипах и оставлю. Если тебе охота перевести в другие единицы, например, в пиксели,- пожалуйста (в Главе 6 мы использовали методы ScaleX и ScaleY для перевода в из одного измерения в другое).
Итак, создадим exe-проект, положим на него Picture1 любого размера, но желательно позиционировать его ближе к верхнему левому углу формы (а то куда ж мы его расширять будем), и два слайдера —Slider1 (горизонтальный) и Slider2 (вертикальный). Чтобы Slider2 стал горизонтальным, надо его свойство .Orientation в окне свойств установить в 1-ccOrientationVertical.
Теперь пишем код.

В процедуре загрузки формы привяжем начало каждого слайдера к положению Picture

Private Sub Form_Load()

Устанавливаем левую границу Slider1 вровень с левой границей Picture1

Также устанавливаем верхнюю границу Slider2 вровень с верхней границей Picture1

Как видишь, мы здесь используем свойства .Top и .Left, которые есть практически у всех объектов. Они показывают расстояние от края формы до границы объекта сверху (.Top) и снизу (.Left).
Поскольку бегунок слайдера в нулевой позиции отстоит от начала самого слайдера где-то на 150 твипов, я из значения положения картинки вычел это расстояние.
Далее загружаем картинку в Picture1. Прошу прощения, за ее пошлость, просто под руку попалась.

Picture1.Picture = LoadPicture(App.Path & «\Lopes.jpg»)

Затем устанавливаем свойства для каждого слайдера. Значения .Max слайдеров я взял от фонаря, исходя из того на сколько можно расширить картинку, чтобы она в экран влезала.

Sl > Sl > Sl > Sl > Sl >

Sl > Sl > Sl > Sl > Sl >

Для каждого слайдера создаем процедурку, где присваиваем значению ширины (или длины) Picture1 значение слайдера.

Private Sub Slider1_Click()
Picture1.W > End Sub

Private Sub Slider2_Click()
Picture1.Height = Slider2.Value
End Sub

Common controls (индикатор прогресса)

1. Перейдите в редактор VBA (ALT+F11) и выберите любую форму.
Затем, выполните один из двух вариантов :
2. В меню Сервис/Tools выберите команду Дополнительные элементы/ Additional Controls
2. Подведите курсор мышки к панели инструментов Панель инструментов и кликните правой кнопкой мышки. В появившемся контекстном меню выберите команду Дополнительные элементы /Additional Controls
Важно : вне зависимости от выбора Панель инструментов обязательно должна отображаться на экране, иначе Вы не сможете воспользоваться вышеупомянутой командой. Поэтому, если панель не видна, то в меню Вид/View выберите команду Панель элементов/Toolbox или воспользуйтесь одноимённой кнопкой с панели Стандарт/Standard
3. После этого, в появившемся списке найдите и выберите нужный элемент управления и подтвердите свой выбор нажатием кнопки OK.
4. Теперь, Вы можете кликнуть появившуюся кнопку и расположить дополнительный элемент управления в любом месте нужного диалогового окна.
Ответ :

Если некоторые, наиболее часто используемые элементы управления, отсутствуют на Вашем компьютере, то далее приведены две ссылки, с помощью которых можно скачать файлы mscomctl.ocx и mscomct2.ocx, а затем распаковать их в папку Windows\System\ если речь идёт о Win 98, Me или Windows\System32\ если установлена OC Win 2000, XP

P.S. Если со скачиваем возникли проблемы, то можно повторить попытку, используя следующую ссылку
Ответ :

Если Вас интересует альтернатива некоторым «стандартным» элементам управления, а также, дополнительные контролы, в т.ч. FolderTreeview , то их можно найти и скачать посетив страницу Common Controls Replacement Project
Ответ :

Илон Маск рекомендует:  Шаблон сайта турфирмы HTML, CSS

Для того, чтобы создать строку состояния можно воспользоваться любым из трёх нижеперечисленных вариантов :

Вариант I.
Создайте элемент управления Надпись — Label1 и разместите его внизу нужного диалогового окна, затем, используя свойства созданного элемента управления :
— удалите или измените текст, который отображается напротив поля Caption
— напротив поля SpecialEffect выберите 2 — fmSpecialEffectSunken
— при необходимости, скорректируйте высоту, ширину и месторасположение созданного элемента, используя свойства Height , Width , Left , Top

Теперь, для того, чтобы в строке состояния отображался нужный текст, достаточно воспользоваться свойством Caption :
Label1.Caption = «Microsoft Excel» ‘Label1 = «Caption — default» Вариант II.
Добавьте элемент управления Microsoft StatusBar Control, version . используя этот [FAQ475]
Теперь, Вы можете кликнуть появившуюся кнопку StatusBar и расположить строку состояния внизу нужного диалогового окна.
А после создания, Вы можете загрузить иконку, создать нужный текст, изменить шрифт, размер, и т.п. Для этого, достаточно всего лишь кликнуть мышкой небольшую серую кнопку в левой части поля (Специальный)/(Custom) и воспользоваться закладками Panels и Font , которые располагаются на диалоговом окне Свойства/Property Pages .

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

Для того, что программно изменить текст в элементе управления StatusBar, достаточно воспользоваться соответствующими свойствами : StatusBar1.Panels(1).Text = «Новый текст»
‘если значение свойства Style = 0-sbrNormal (по умолчанию)StatusBar1.SimpleText = «Новый текст»
‘если значение свойства Style = 1-SimpleВариант III.
Создать строку состояния, а затем изменять текст этого окна, можно использовав функции WinAPI [FAQ374]
Ответ :

Если во время выполнения макроса, Вам необходимо наглядно показать процесс его выполнения, то для этого можно использовать ProgressBar. Пример создания и применения собственного прогресс бара можно найти в следующем [FAQ513]
Если же имитация, по каким-то причинам, нежелательна, то можно воспользоваться «стандартным» элементом управления, который является частью Microsoft Windows Common Controls. Для этого, сначала добавьте элемент управления Microsoft ProgressBar Control, version . воспользовавшись следующим [FAQ475]

А затем, используйте нижеприведённый вариант, только не забудьте закомментировать/удалить последнюю строку, если Вам не нужно , чтобы после окончания выполнения макроса, индикатор ProgressBar’а возвращался в исходное состояние.

Ответ :

Для того, чтобы создать свой собственный индикатор прогресса (ProgressBar), проделайте следующее :
1. Создайте элемент управления Надпись — Back, затем, используя свойства созданного элемента управления :
— удалите текст, который отображается напротив поля Caption
— установите нужную высоту, ширину и месторасположение созданного элемента, используя свойства Height , Width , Left , Top
— установите, используя поле BackColor , нужный фоновый цвет, например, белый
— напротив поля SpecialEffect выберите 2 — fmSpecialEffectSunken
2. Затем, создайте второй элемент управления Надпись — Progress
— установите значения его свойств Top , Left , Height равными соответствующим свойствам первого (Back) элемента, а значение свойства Width установите = 0
— удалите текст, который отображается напротив поля Caption
— используя поле BackColor , выберите нужный цвет прогресс бара, например, синий
— напротив поля SpecialEffect выберите 1 — fmSpecialEffectRaised

После чего, используйте следующую процедуру для отображения процесса индикации, естественно, указав своё количество итераций (iMax)
Пример собственного прогресс бара, с так называемыми «кирпичиками», можно скачать здесь
Ответ :

Если во время выполнения макроса, Вам необходимо использовать ProgressBar, но количество итераций(повторений) неизвестно и вычислить общее время выполнения программы, невозможно(или крайне затруднительно), то можно создать имитацию «вечного» прогресс-бара, например, с помощью анимационного .gif

Как, с помощью WebBrowser, отобразить на форме такие файлы, довольно подробно рассказано в следующем [FAQ675]

Если же Вы захотите избавиться от полосы прокрутки, рамки и т.д., то смотрите пример. Обратите внимание, что там также наличествуют два анимационных .gif файла, которые любезно предоставил их создатель Андрей Аганин
Ответ :

Для того, чтобы изменить количество «кирпичиков» у элемента управления Microsoft ProgressBar Control нужно уменьшить высоту контрола (свойство Height ), если необходимо увеличить их количество и, наоборот, увеличить высоту контрола, если количество делений нужно уменьшить.


Ответ :

Сначала добавьте элемент управления Microsoft Common Dialog Control, version . воспользовавшись следующим [FAQ475]

А для отображения стандартного диалогового окна, которое позволит Вам выбрать нужный цвет, используйте, например, следующий код и кнопку : Private Sub CommandButton1_Click()
On Error GoTo ErrHandler
With Me.CommonDialog1
.CancelError = True
.ShowColor
iColor& = .Color
End With
‘Теперь, Вы можете использовать полученный цвет,
‘например, изменить цвет формы
Me.BackColor = iColor&: Exit Sub
ErrHandler:
If Err.Number = 32755 Then
MsgBox «Нужно было выбрать нужный цвет», vbCritical, «»
End If
End Sub
Ответ :

К сожалению, при использовании колёсика(средней кнопки) мышки прокрутки списка не происходит, однако, если оставить в покое стандартный ComboBox и воспользоваться элементом управления ImageComboBox, то добиться желаемого всё таки можно (перечень действий, позволяющих добавить этот контрол — Microsoft ImageComboBox Control, version . см. выше, а небольшой пример заполнения ImageCombo можно скачать здесь)
Ответ :

К сожалению, стандартный ComboBox не позволяет изменять цвет текста у отдельного элемента списка, однако, если создать имитацию разноцветного ComboBox, то добиться желаемого всё таки можно (пример можно скачать здесь)
Ответ :

Увы, но стандартный ListBox не позволяет изменять цвет заливки у отдельного элемента списка (строки), однако, если оставить его в покое и воспользоваться элементом управления TreeView, то добиться желаемого можно (перечень действий, позволяющих добавить этот контрол — Microsoft TreeView Control, version . см. выше, а несколько примеров, демонстрирующих заполнение TreeView, можно скачать здесь)

Однако, чтобы создать иллюзию использования именно ListBox необходимо ещё и изменить значения некоторых свойств TreeView :

Style = 0 — tvwTextOnly
FullRowSelect = True
Checkboxes = True (если необходимо наличие флажков)

Совет : Рекомендую обратить особое внимание на свойство Sorted , которое позволит Вам получить отсортированный по возрастанию список без дополнительных действий.
Ответ : Актуально для MS Excel XP (и старше)

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

А для того, чтобы заполнить наш элемент управления, нам достаточно будет всего лишь воспользоваться следующим событием формы : Если же необходим список только рабочих листов и Вы уверены, что ярлычки абсолютно всех рабочих листов раскрашены и Вы готовы изменить значения трёх вышеприведённых свойств, вручную, то :
Ответ :

Увы, но стандартный ListBox, после перетаскивания файлов/папок из проводника на ListBox не позволяет получить имена этих файлов, однако, если воспользоваться элементом управления ListView, то добиться желаемого можно (перечень действий, позволяющих добавить этот контрол — Microsoft ListView Control, version . см. выше, а код, позволяющий создать иллюзию использования именно ListBox, а также заполнение ListView, смотрите ниже. Обратите внимание на то, что все действия связанные с созданием имитации ListBox, можно проделать и вручную, причём только один раз) Если же Вы не хотите , чтобы в списке появлялись папки, т.е. в списке должны присутствовать только имена файлов, то добавьте небольшую проверку :

  • Ответ :
  • Ответ :

    Если Вы читаете этот FAQ , то, по всей видимости, уже заметили, что ListView сортирует даты как текст и если Вас это не устраивает, что вполне естественно, то :

  • создайте один дополнительный столбец
  • скройте его, установив ширину столбца = 0 (свойство Width)
  • заполните его, заменив Дату , например, на CDbl(Дата)
  • а затем, просто сортируйте этот дополнительный столбец
  • Ответ :

    Если Вас не устраивает, что для перехода в режим редактирования необходимо сначала выделить нужный элемент списка, а затем и ещё и кликнуть мышкой, то можно ускорить сей процесс. Например, использовав метод StartLabelEdit .
    Ответ :

    К сожалению, стандартный TextBox не позвляет форматировать часть текста, однако, если воспользоваться элементом управления RichTextBox, то добиться желаемого всё таки можно (перечень действий, позволяющих добавить этот контрол — Microsoft Rich TextBox Control, version . см. выше), а пример, позволяющий непосредственно при вводе выделять жирным кириллицу или латиницу, см. ниже (только не забудьте выбрать одно из нижеопубликованных событий KeyPress, а для кириллицы и правильно указать версию OC) Совет : Обратите внимание на то, что RichTextBox позволяет также подчеркнуть, зачеркнуть текст, выделить его курсивом, поменять шрифт и изменить его размер, кроме того Вы можете ещё и изменять цвет шрифта.
    Ответ :

    Если Вы используете элемент управления Image, то возможно замечали, что данный контрол не имеет полос прокрутки, а значит, если размер загружаемого рисунка будет больше, чем размер Image, то Вы увидите только часть рисунка. В некоторых случаях достаточно установить значение свойства PictureSizeMode как 3-fmPictureSizeModeZoom , но если изменение масштаба рисунка недопустимо, и Вам просто необходима возможность «прокручивать» изображение, то в таком случае, можно пойти на маленькую хитрость, а именно :

    1) Создайте элемент управления Рамка — Frame1 и разместите его там, где должен находиться Image, затем, используя свойства созданного элемента управления :
    — удалите текст, который отображается напротив поля Caption
    — напротив поля SpecialEffect выберите 2 — fmSpecialEffectBump (необязательно)
    — при необходимости, скорректируйте высоту, ширину и месторасположение созданного элемента, используя свойства Height , Width , Left , Top
    2) Создайте элемент управления Рисунок — Image1, и разместите его на Frame1 , после чего, напротив :
    — свойств Left и Top введите 0 (или -1)
    — поля AutoSize выберите True
    — поля PictureAlignment выберите 0-fmPictureAlignmentTopLeft
    3) Создайте два элемента управления Полоса прокрутки — ScrollBar1 (вертикальный) и ScrollBar2 (горизонтальный) и разместите их, относительно Frame1 , справа и внизу.

    Теперь, при загрузке изображения, используйте код (событие UserForm_Initialize, разумеется, применяется только в качестве примера, равно как и указанный файл) А для прокручивания изображения, используйте соответствующие события полос прокрутки : Более полную версию данного совета, можно скачать здесь.

    Вариант II.
    Добавьте элемент управления Обозреватель веб-страниц (Microsoft) или Элемент средства просмотра Web Microsoft (Win95) используя этот [FAQ475]
    Затем, кликните появившуюся кнопку WebBrowser, и расположите обозреватель в нужном месте диалогового окна.

    Теперь, когда Вам понадобится загрузить нужный графический файл, используйте метод Navigate, т.е. : К сожалению, данный способ зависит от настроек обозревателя, и если у Вас не установлен «флажок» Отображать рисунки , то изображения Вы не увидите (во всяком случае, так было при использовании прежних версий IE)

    Однако, у данного варианта есть и свои плюсы, например, WebBrowser позволяет отображать большое количество графических файлов, в т.ч. и .png которые, иногда, используются здесь как скриншоты.
    Ответ :

    Если Вы когда-нибудь загружали программно анимационный .gif , то, скорее всего, замечали, что стандартные контролы (в т.ч. и Image) не показывают долгожданной анимации и если такой расклад Вас не устраивает, то можно поискать в сети контролы (в т.ч. и бесплатные), которые это позволяют, или же использовать элемент управления Обозреватель веб-страниц (Microsoft) или Элемент средства просмотра Web Microsoft (Win95)

    Подробный совет по добавлению дополнительных элементов управления, можно найти здесь [FAQ475] и если Вы им воспользуетесь, то когда Вам понадобится загрузить нужный графический файл, просто воспользуйтесь методом Navigate, т.е. : Обратите внимание на то, что после загрузки изображения, на экране появится полоса прокрутки (scrollbar), причём мы будем её видеть, даже если размер контрола будет превышать размеры загружаемого изображения. Впрочем, от полосы прокрутки можно избавиться, как минимум, двумя способами :

    Вариант I. Вариант II. Вариант II(Б). К сожалению, данный способ также зависит от настроек обозревателя, и если у Вас не установлен «флажок» Воспроизводить анимацию на вэб-страницах , то анимации Вы не увидите.
    Ответ :

    Если Вы используете WebBrowser для отображения картинки(графики), то, возможно, замечали, что картинка отображается в браузере не с крайнего левого верхнего угла, а с некоторым отступом. И если Вы хотите избавиться от этого отступа, то, используя событие UserForm_Activate, просто измените значения двух свойств :
    Ответ :

    Если возникнет необходимость «разместить» на UserForm содержимое указанной папки, причём с возможностью работы с папками/файлами, то для решения поставленной задачи, можно опять использовать элемент управления Обозреватель веб-страниц (Microsoft) или Элемент средства просмотра Web Microsoft (Win95)

    Подробный совет по добавлению дополнительных элементов управления, можно найти здесь [FAQ475] и если Вы им воспользуетесь, то когда Вам понадобится загрузить папку, просто воспользуйтесь методом Navigate, указав путь к реально существующей папке, т.е. :
    Ответ :

    Возможно Вы замечали, что во время выполнения некоторых операций, к примеру, копирование/удаление файлов, папок можно наблюдать некоторые анимационные эффекты, такие как перемещающиеся из одной папки в другую бумаги, выбрасываемые в мусорную корзину скомканные листы и т.п. Если такие же анимационные ролики Вы хотите видеть и на своём нестандартном диалоговом окне, то, используя этот [FAQ475] добавьте элемент управления Microsoft Animation Control, version . , а затем, для загрузки avi файлов используйте метод Open, для их демонстрации метод Play, а для остановки метод Stop (небольшой пример, а также некоторые avi файлы, можно скачать здесь)


    Если же необходимого элемента управления нет в списке доступных элементов управления, например, в случае отсутствия на компьютере файла MSComct2.ocx или Comct232.ocx, то осуществить задуманное можно с помощью функций WinAPI (более подробно)
    Ответ : Актуально только для DialogSheet + ListBox

    19 Progress Bar and Progress Indicator

    In this chapter, you learn about the progress indicator and progress bar, the UI controls that visualize progress of any operations in your JavaFX applications.

    The ProgressIndicator class and its direct subclass ProgressBar provide the capabilities to indicate that a particular task is processing and to detect how much of this work has been already done. While the ProgressBar class visualizes the progress as a completion bar, the ProgressIndicator class visualizes the progress in the form of a dynamically changing pie chart, as shown in Figure 19-1.

    Figure 19-1 Progress Bar and Progress Indicator

    Creating Progress Controls

    Use the code fragment in Example 19-1 to insert the progress controls in your JavaFX application.

    Example 19-1 Implementing the Progress Bar and Progress Indicator

    You can also create the progress controls without parameters by using an empty constructor. In that case, you can assign the value by using the setProgress method.

    Sometimes an application cannot determine the full completion time of a task. In that case, progress controls remain in indeterminate mode until the length of the task is determined. Figure 19-2 shows different states of the progress controls depending on their progress variable value.

    Figure 19-2 Various States of Progress Controls

    Example 19-2 shows the source code of the application shown in Figure 19-2.

    Example 19-2 Enabling Different States of Progress Controls

    A positive value of the progress variable between 0 and 1 indicates the percentage of progress. For example, 0.4 corresponds to 40%. A negative value for this variable indicates that the progress is in the indeterminate mode. Use the isIndeterminate method to check whether the progress control is in the indeterminate mode.

    Илон Маск рекомендует:  Что такое код msql_listtables

    Indicating Progress in Your User Interface

    Example 19-2 was initially simplified to render all the possible states of the progress controls. In real-world applications, the progress value can be obtained through the value of other UI elements.

    Study the code in Example 19-3 to learn how set values for the progress bar and progress indicator based on the slider position.

    Example 19-3 Receiving the Progress Value from a Slider

    When you compile and run this application, it produces the window shown in Figure 19-3.

    Figure 19-3 Indicating the Progress Set by a Slider

    An ChangeListener object determines if the slider’s value is changed and computes the progress for the progress bar and progress indicator so that the values of the progress controls are in the range of 0.0 to 1.0.

    Индикатор прогресса HTML5

    В HTML5 появился элемент индикатора прогресса, который выводит состояние процесса выполнения определенных задач, например, таких как загрузка данных на сервер.

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

    Основы

    Индикатор прогресса добавляется с помощью элемента

    . Значение индикатора определяется атрибутами value , min и max :

    Так как базовая реализация использует стандартные формы, то визуальное представление будет зависеть от платформы реализации. Ниже приводится пример того, как выглядит индикатор прогресса в Windows и OSX.

    Теперь определим стили для индикатора прогресса, чтобы он выглядел одинаково на любых платформах.

    Стили для индикатора прогресса

    В таблице стилей мы можем использовать селектор элемента для выбора элемента и добавления правил для элемента

    . В ниже приведенном примере мы изменяем фоновый цвет, удаляем обводку и скругляем углы на радиус равный половине высоты элемента.

    Однако, каждый браузер обрабатывает правила немного по своему.

    В Firefox стили влияют на полоску индикатора, а на текущее значение не оказывают воздействия.

    В Chrome и Safari стили не используются и применяются установки Webkit (в текущий момент времени).

    Поэтому потребуется больше действий.

    В Chrome и Safari элемент прогресса преобразуется следующим образом.

    Таким образом для изменения полоски индикатора и текущего значения в браузере нужно добавить псевдо-классы:

    Firefox также имеет специальный псевдо-класс ::-moz-progress-bar. В отличие от Chrome и Safari данный псевдо-класс ссылается на текущее значение:

    В завершение представим все селекторы для определения стилей HTML5 индикатора прогресса.

    Анимирование прогресса

    Теперь рассмотрим, как анимировать индикатор прогресса. Обычно, полоска расширяется слева направо по мере выполнения задачи.

    Идея заключается в том, что индикатор прогресса расширяется от 0 и останавливается в момент достижения максимального значения. Мы также будем выводить числовое значение прогресса. Ниже приводится структура HTML.

    В данном примере мы используем jQuery для анимации индикатора прогресса. Поэтому добавляем jQuery в документ:

    Затем мы добавляем скрипт, который выполняет расширение полоски прогресса. Сначала сохраняем элемент индикатора прогресса, текущее и максимальное значения, а также и частоту кадров:

    Затем мы создаем переменную, которая хранит функцию анимации. В нашем примере она называется loading .


    Внутри выше приведенной функции устанавливаем интервал прогресса. Будем увеличивать данное значение на 1 за один кадр — можно увеличивать значение на большую величину, чтобы ускорить ход индикатора.

    А затем мы добавляем результат к полоске прогресса.

    Мы также показываем значение рядом с индикатором прогресса:

    Затем мы создаем новую функцию для выполнения анимации:

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

    Сохраним выше приведенную функцию в переменной:

    В переменной loading добавляем условное выражение:

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

    Приведем полный код анимации индикатора прогресса:

    Поддержка в браузерах

    Элемент HTML5 для индикатора прогресса поддерживается в следующих браузерах: Firefox 16+, Chrome 8+, Safari 6+ и Opera 11+.

    Данный урок подготовлен для вас командой сайта ruseller.com
    Источник урока: www.hongkiat.com/blog/html5-progress-bar/
    Перевел: Сергей Фастунов
    Урок создан: 4 Марта 2013
    Просмотров: 34851
    Правила перепечатки

    5 последних уроков рубрики «CSS»

    Забавные эффекты для букв

    Небольшой эффект с интерактивной анимацией букв.

    Реализация забавных подсказок

    Небольшой концепт забавных подсказок, которые реализованы на SVG и anime.js. Помимо особого стиля в примере реализована анимация и трансформация графических объектов.

    Анимированные буквы

    Эксперимент: анимированные SVG буквы на базе библиотеки anime.js.

    Солнцезащитные очки от первого лица

    Прикольный эксперимент веб страницы отображение которой осуществляется “от первого лица” через солнцезащитные очки.

    Раскрывающаяся навигация

    Экспериментальный скрипт раскрывающейся навигации.

    Complex_Common — индикатор для MetaTrader 4

    Автор: Семён Семёныч

    Это импульсный индикатор или сигнальный. Он очень чувствительный и быстро реагирует на ценовые движения.
    Статья про кластерные индикаторы.

    Для определения сигнала необходимо наличие четко выраженного фрактала. Второй элемент – это наличие вспомогательного (опорного) пика. От фрактала через этот вспомогательный пик проводится сигнальная линия.

    Модифицированная версия индикатора DayImplus 1.1.

    Основана на пересечении средних. Автор системы — утверждает, что где-то 90% сделок идут в плюс. А учитывая ее систему выходов можно собирать немаленький профит во время тренда.

    Благодаря использованию более совершенных алгоритмов сглаживания этот RSI имеет меньшее запаздывание и более гладкую форму кривой.

    Индикатор прогресса

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

    Чтобы показать, что выполняется задача неопределенной длительности, вы можете использовать нефиксированный режим строки прогресса. В этом режиме строка прогресса будет просто отображать анимацию того, что процесс выполняется. Как только вы сможете оценить длительность задачи и текущий прогресс ее выполнения, нужно будет обновить значение строки прогресса и переключить ее в Фиксированный режим.

    Чтобы добавить индикатор прогресса

    1. Перетащите элемент Индикатор прогресса из палитры Элементы управления в то место графического редактора, где вы хотите его нарисовать.

    Свойства

    Имя – Имя индикатора прогресса. Имя используется для идентификации элемента и доступа к нему из кода.

    Исключить – Если опция выбрана, то индикатор прогресса будет исключена из модели.

    Отображается на верхнем агенте – Если опция выбрана, то индикатор прогресса будет виден на презентации типа агента, в который будет вложен данный агент.

    Ориентация – Задает ориентацию индикатора прогресса ( Горизонтальная или Вертикальная ).

    Отображать строку прогресса – Если опция выбрана, то в поле индикатора прогресса отображается текстовая строка. Обычно она показывает текущее значение прогресса выполнения задачи. Содержимое строки задается в поле справа от флажка. Здесь вы можете ввести выражение, возвращающее значение типа String — текст, который и будет отображаться в поле элемента управления. Вы можете использовать в выражении две локальные переменные: value (хранит значение текущего прогресса) и percent (хранит текущее значение процента выполненной задачи).
    Пример строки: percent + » процент(ов) выполнен(о)»

    Минимальное значение – Минимальное значение индикатора прогресса.

    Максимальное значение – Максимальное значение индикатора прогресса.

    Значение прогресса – Выражение, возвращающее значение типа double — значение прогресса выполнения задачи.
    Простейший пример: если вы хотите отслеживать с помощью индикатора прогресса ход течения времени, напишите здесь time()

    Фиксированный – Логическое выражение, определяющее, находится ли индикатор прогресса в фиксированном или нефиксированном режиме. В нефиксированном режиме элемент управления будет показывать с помощью анимации, что выполняется задача неопределенной длительности.

    Код, который будет выполняться при заполнении индикатора.

    Местоположение и размер


    Уровень – Уровень, на котором расположен этот элемент.

    X – X-координата верхнего левого угла индикатора прогресса.

    Y – Y-координата верхнего левого угла индикатора прогресса.

    Ширина – Ширина индикатора прогресса (в пикселах).

    Высота – Высота индикатора прогресса (в пикселах).

    Видимость – Элемент будет виден, если заданное здесь выражение будет истинно ( true ), в противном случае он отображаться не будет.

    Количество – Количество экземпляров данного элемента управления. Если вы оставите это поле пустым, то будет создан только один такой элемент управления.

    Отображать имя – Если опция выбрана, то имя индикатора прогресса будет отображаться в графическом редакторе.

    Значок – Если опция выбрана, то индикатор прогресса будет считаться частью значка типа агентов.

    Функции

    Значение индикатора прогресса

    Возвращает минимальное значение индикатора прогресса.

    Возвращает максимальное значение индикатора прогресса.

    void setRange(double min, double max)

    Задает минимальное и максимальное значения индикатора прогресса.

    min — новое минимальное значение
    max — новое максимальное значение

    Фиксированный режим

    void setProgressString
    (String val)

    Задает значение строки индикатора прогресса.

    Параметр:
    val — новое значение строки индикатора прогресса; если null , то строка скрыта.

    Местоположение

    Возвращает ширину элемента в пикселах.

    Возвращает высоту элемента в пикселах.

    void setWidth(double width)

    Устанавливает ширину элемента равной параметру width .


    void setHeight(double height)

    Устанавливает высоту элемента равной параметру height

    Видимость

    XAML Controls Gallery XAML Controls Gallery

    Если у вас установлено приложение галереи элементов управления XAML, щелкните здесь, чтобы открыть приложение и увидеть ProgressBar или ProgressRing в действии. If you have the XAML Controls Gallery app installed, click here to open the app and see the ProgressBar or ProgressRing in action.

    Когда использовать каждый элемент управления When to use each control

    Не всегда очевидно, какой элемент управления или какое его состояние (определенное или неопределенное) следует использовать для индикации выполнения какой-либо операции. It’s not always obvious what control or what state (determinate vs indeterminate) to use when trying to show something is happening. Иногда задача достаточно очевидна и совсем не требует индикации выполнения, но иногда даже при использовании индикатора выполнения требуется еще и текстовая строка для объяснения того, какая операция выполняется. Sometimes a task is obvious enough that it doesn’t require a progress control at all – and sometimes even if a progress control is used, a line of text is still necessary in order to explain to the user what operation is underway.

    ProgressBar ProgressBar

    Обладает ли элемент управления определенной продолжительностью или можно ли спрогнозировать завершение операции? Does the control have a defined duration or predictable end?

    В таких случаях используйте определенное состояние ProgressBar и соответствующим образом обновляйте процент или другое значение хода выполнения. Use a determinate ProgressBar then, and update the percentage or value accordingly.

    Может ли пользователь продолжить использование приложения, не следя за ходом выполнения операции? Can the user continue without having to monitor the operation’s progress?

    Когда используется ProgressBar, взаимодействие происходит немодальным образом; обычно это означает, что действия пользователя не заблокированы до завершения этой операции и он может продолжить использование приложения другими способами, пока операция выполняется. When a ProgressBar is in use, interaction is non-modal, typically meaning that the user is not blocked by that operation’s completion, and can continue to use the app in other ways until that aspect has completed.

    Ключевые слова Keywords

    Если ваша операция связана с этими ключевыми словами или если вы отображаете подобный текст вместе с индикацией хода выполнения, рекомендуется использовать ProgressBar. If your operation falls around these keywords, or if you’re showing text that alongside the progress operation that matches these keywords; consider using a ProgressBar:


    ProgressRing ProgressRing

    Вынуждает ли операция пользователя ожидать ее завершения, чтобы продолжить? Will the operation cause the user to wait to continue?

    Если операция требует, чтобы взаимодействие с приложением полностью или по большей части прекратилось до ее завершения, более подходящим вариантом будет ProgressRing. If an operation requires all (or a large portion of) interaction with the app to wait until it has been completed, then the ProgressRing is the better choice. Элемент управления ProgressRing используется для модальных взаимодействий; это означает, что действия пользователя блокируются до исчезновения ProgressRing. The ProgressRing control is used for modal interactions, meaning that the user is blocked until the ProgressRing disappears.

    Ожидает ли приложение, что пользователь завершит задачу? Is the app waiting for the user to complete a task?

    Если да, используйте ProgressRing, поскольку этот индикатор предназначен для отображения пользователю неизвестного времени ожидания. If so, use a ProgressRing, as they’re meant to indicate an unknown wait time for the user.

    Ключевые слова Keywords

    Если ваша операция связана с этими ключевыми словами или если вы отображаете подобный текст вместе с индикацией хода выполнения, рекомендуется использовать ProgressRing. If your operation falls around these keywords, or if you’re showing text alongside the progress operation that matches these keywords; consider using a ProgressRing:

    Индикация хода выполнения не требуется No progress indication necessary

    Нужно ли пользователю знать информацию о выполняемых действиях? Does the user need to know that something is happening?

    Например, если приложение скачивает что-либо в фоновом режиме, а пользователь не начинал скачивание, то ему необязательно знать о нем. For example, if the app is downloading something in the background and the user didn’t initiate the download, the user doesn’t necessarily need to know about it.

    Выполняется ли операция в фоновом режиме, не блокируя деятельность пользователя, и представляет ли она какой-то реальный интерес для пользователя? Is the operation a background activity that doesn’t block user activity and is of minimal (but still some) interest to the user?

    Используйте текст, когда ваше приложение выполняет задачи, которые не должны всегда выводиться на экран, но вам нужно отображать их состояние. Use text when your app is performing tasks that don’t have to be visible all the time, but you still need to show the status.

    Важно ли пользователю только то, что операция выполнена? Does the user only care about the completion of the operation?

    Иногда лучше показать уведомление только после выполнения операции или сразу же предоставить визуальное указание, что операция выполнена, а завершающие действия выполнить в фоновом режиме. Sometimes it’s best to show a notice only when the operation is completed, or give a visual that the operation has been completed immediately, and run the finishing touches in the background.

    Рекомендации по использованию индикаторов хода выполнения Progress controls best practices

    Иногда лучше увидеть визуальные примеры того, где и когда следует использовать различные индикаторы хода выполнения: Sometimes it’s best to see some visual representations of when and where to use these different progress controls:

    ProgressBar — определенное состояние ProgressBar — Determinate

    Первый пример относится к определенному состоянию ProgressBar. The first example is the determinate ProgressBar. Если продолжительность операции известна, например во время установки, загрузки, настройки и т. п., лучше всего использовать определенное состояние ProgressBar. When the duration of the operation is known, when installing, downloading, setting up, etc; a determinate ProgressBar is best.

    ProgressBar — неопределенное состояние ProgressBar — Indeterminate

    Когда длительность операции неизвестна, используйте неопределенное состояние ProgressBar. When it is not known how long the operation will take, use an indeterminate ProgressBar. Неопределенное состояние ProgressBar также хорошо подходит при заполнении виртуализированного списка и создании плавного визуального перехода от неопределенного к определенному состоянию индикатора ProgressBar. Indeterminate ProgressBars are also good when filling a virtualized list, and creating a smooth visual transition between an indeterminate to determinate ProgressBar.

    Выполняется ли операция в виртуализированной коллекции? Is the operation in a virtualized collection?

    Если да, не создавайте индикатор хода выполнения для каждого элемента списка по мере их появления. If so, do not put a progress indicator on each list item as they appear. Вместо этого используйте ProgressBar и поместите его в верхнюю часть коллекции загружаемых элементов, чтобы показать, что элементы подгружаются. Instead, use a ProgressBar and place it at the top of the collection of items being loaded in, to show that the items are being fetched.

    ProgressRing — неопределенное состояние ProgressRing — Indeterminate

    Неопределенное состояние ProgressRing используется, когда любое дальнейшее взаимодействия пользователя с приложением прекращается или приложение ожидает ввода пользователя для продолжения работы. The indeterminate ProgressRing is used when any further user interaction with the app is halted, or the app is waiting for the user’s input to continue. Приведенный выше пример «Вход. » The “signing in…” является идеальным сценарием для использования ProgressRing; пользователь не может продолжить использование приложения, пока вход не выполнен. example above is a perfect scenario for the ProgressRing, the user cannot continue using the app until the sign is has completed.

    Настройка индикатора хода выполнения Customizing a progress control

    Оба индикатора выполнения довольно простые, но возможность изменения некоторых визуальных особенностей элементов управления не очевидна. Both progress controls are rather simple; but some visual features of the controls are not obvious to customize.

    Определение размера ProgressRing Sizing the ProgressRing

    ProgressRing можно увеличить до любого требуемого размера, но этот индикатор не может быть меньше 20×20 epx. The ProgressRing can be sized as large as you want, but can only be as small as 20x20epx. Для изменения размера ProgressRing необходимо задать его высоту и ширину. In order to resize a ProgressRing, you must set its height and width. Если задается только высота или ширина, элемент управления получит минимальный размер (20×20 epx), но если для высоты и ширины заданы два различных значения, используется наименьший из них. If only height or width are set, the control will assume minimum sizing (20x20epx) – conversely if the height and width are set to two different sizes, the smaller of the sizes will be assumed. Для обеспечения соответствия ProgressRing вашим потребностям устанавливайте одинаковые значения для длины и ширины. To ensure your ProgressRing is correct for your needs, set both the height and the width to the same value:

    Для отображения и анимирования ProgressRing необходимо задать свойству IsActive значение true: To make your ProgressRing visible, and animate, you must set the IsActive property to true:

    Раскрашивание индикаторов хода выполнения Coloring the progress controls

    По умолчанию основные цвета индикаторов хода выполнения устанавливаются в соответствии с цветом элементов системы. By default, the main coloring of the progress controls is set to the accent color of the system. Чтобы переопределить эту кисть, просто измените свойство переднего плана в любом элементе управления. To override this brush simply change the foreground property on either control.

    Изменение цвета переднего плана для ProgressRing приведет к изменению цвета точек. Changing the foreground color for the ProgressRing will change the colors of the dots. Свойство переднего плана ProgressBar изменяет цвет заливки индикатора; для изменения цвета незаполненной его части просто переопределите свойство заднего плана. The foreground property for the ProgressBar will change the fill color of the bar – to alter the unfilled portion of the bar, simply override the background property.

    Отображение курсора ожидания Showing a wait cursor

    Иногда лучше показать только кратковременный курсор ожидания, когда приложению или операции требуется время на размышления, а вам необходимо показать пользователю, что с приложением или его областью, где находится курсор ожидания, не следует взаимодействовать, пока курсор ожидания не исчезнет. Sometimes it’s best to just show a brief wait cursor, when the app or operation needs time to think, and you need to indicate to the user that the app or area where the wait cursor is visible should not be interacted with until the wait cursor has disappeared.

    Получить пример кода Get the sample code

    • Пример из коллекции элементов управления XAML — ознакомьтесь со всеми элементами управления XAML в интерактивном режиме. XAML Controls Gallery sample — See all the XAML controls in an interactive format.

    Разработчикам (XAML) For developers (XAML)

    One more step

    Please complete the security check to access codepen.io

    Why do I have to complete a CAPTCHA?

    Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

    What can I do to prevent this in the future?

    If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

    If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

    Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

    Cloudflare Ray ID: 534846ed58918f73 • Your IP : 188.64.174.135 • Performance & security by Cloudflare

    Илон Маск рекомендует:  PWideChar - Тип Delphi
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL