2010-08-31 5 views
0

В настоящее время я пытаюсь написать приложение с индикатором прогресса в C# с помощью WPF: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

ответ

0

Я не знаю, если я понять, что вы хотите, но это то, что я хотел бы попробовать

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

Этот подход только заполнит прогресс «шеи» индикатора, напоминающего бутылку.

Смежные вопросы