Показатель или индикатор прогресса в XAML
Сочетание кода XAML и управления событиями для создания нового графического компонента.
Отображение панели баллов, например, панели инструментов Google Toolbar или индикатора загрузки, предполагает взаимодействие между рисунком и программой. Так что между JavaScript и XAML.
Самый простой вариант - зеленая панель - заключается в рисовании прямоугольника начального размера, но для более общего графического элемента вместо этого будет определена панель, которая может развиваться после отображения в соответствии с параметрами пользователя.
Шаги будут следующие:
- Отображение цветного прямоугольника.
- Введите значение.
- Изменение прямоугольника в соответствии с заданным значением.
Рисование прямоугольника
Его помещают в рамку, что делает два вложенных прямоугольника. Мы видели, как объединить компоненты внутри Canvas в главе на кнопке.
Как вариант, значение в цифровой форме также будет размещено в середине панели.
<Canvas> <Canvas x:Name="Widget" > <Rectangle x:Name="border" /> <Rectangle x:Name="bar" /> <TextBlock x:Name="digit" Text="00" /> </Canvas> </Canvas>
Режиссерский сценарий
Для этой демонстрации мы выберем значение из формы и зададим это значение в качестве параметра функции JavaScript, которая изменяет размер панели. В практическом приложении именно пользовательская программа определит значение, предоставленное функции JavaScript.
Инициализация индикатора
Размер зеленого прямоугольника определяется при погрузке:
function barInit(sender, args) { var obj = sender.findName("bar"); // la barre verte obj["Width"] = 0; var txt = sender.findName("digit"); // le texte txt.Text = String(0); }
Для этого в Глобальный холст добавляется событие Loaded:
<Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="javascript:barInit" >
Изменение индикатора
Классическая форма позволяет ввести значение от 0 до 100. Это значение интерполируется при максимальном размере полосы, который в примере составляет 296 пикселей:
var value = document.enter.user.value; value = value * 296 / 100;
Обратите внимание, что у вас больше нет «sender», так как вы получаете доступ к виджету извне, но вы найдете виджет с помощью DOM:
var barcontrol = document.getElementById("agControl1");
где agControl1 - имя виджета на HTML-странице.
Далее осуществляется доступ к элементам, как и ранее:
var txt = barcontrol.findName("digit"); txt.Text = String(value); value = value * 296 / 100; var bar = barcontrol.findName("bar"); bar["Width"] = value;
Демо...
Посмотреть код
- Код JavaScript.
- Код XAML.