WPF: создание динамического индикатора прогресса - PullRequest
0 голосов
/ 31 августа 2010

В настоящее время я пытаюсь написать приложение с индикатором прогресса в C #, используя WPF:

<Path Canvas.Left="15" Canvas.Top="50" Stroke="Red" StrokeThickness="6" Data=" M 700,100 L 620,100 C 620,100 600,100 600,80 L 600,50 C 600,50 600,30 580,30 L 50,30 L 50,340 L 580,340 C 580,340 600,340 600,320 L 600,290 C 600,290 600,270 620,270 L 700,270" Name="Progress" StrokeDashCap="Flat" StrokeEndLineCap="Round" StrokeLineJoin="Round" StrokeStartLineCap="Round" StrokeMiterLimit="30">

image http://img839.imageshack.us/my.php?image=20100831180406.png

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

У кого-нибудь есть идеи о том, как добиться того, чего я хочу? Или указать мне другое возможное решение?

С наилучшими пожеланиями, Jonas

1 Ответ

0 голосов
/ 31 августа 2010

Не знаю, понимаю ли я, чего вы хотите, но я бы попробовал

  1. Разделите его на 3 столбца с указанием пути в каждом столбце. 1-й столбец имеет путь для левого края. Средний столбец будет иметь только верх / низ и будет растягиваться, правый столбец будет содержать правильные кривые / и т. Д.
  2. Создайте прямоугольник с радиусом, равным вашим внутренним углам, и поместите его во 2-й столбец.
  3. Визуализация прогресса путем обновления ширины прямоугольника.

Этот подход только заполнит прогресс до "горлышка" индикатора, похожего на бутылку, который вы сделали.

...