Как мне анимировать PathGeometry, чтобы медленно показывать себя? - PullRequest
3 голосов
/ 07 февраля 2012

Привет есть следующий кусок XAML

<Path Stroke="#FF000000" StrokeThickness="3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeDashCap="Round" StrokeLineJoin="Round" StrokeMiterLimit="4" Name="kvg_0994c_s1">
   <Path.Data>
      <PathGeometry FillRule="Nonzero" Figures="M28.27,12.64C28.32,13.27 28.52,14.32 28.17,15.16 25.86,20.7 19.22,31.55 9.81,39.71" />
   </Path.Data>
</Path>

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

Мне нужно сделать это в коде C #, так как я загружаю XAML динамически из внешнего файла. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Вы должны использовать для этого анимацию WPF. Смотрите здесь: http://msdn.microsoft.com/en-us/library/ms752312.aspx Более подробную информацию об анимации вы можете найти в превосходной книге Адама Натана "Windows Presentation Foundation Unleashed" Я думаю, что вы можете найти точный ответ на ваш вопрос здесь: http://social.msdn.microsoft.com/Forums/en/wpf/thread/19a7bd4b-cf28-4b31-a329-a5f58b9ec374

1 голос
/ 07 февраля 2012

что вы подразумеваете под «медленно раскрываться»?Вы имеете в виду, как будто это было нарисовано по крупицам?Затем вам придется разложить данные, а затем заново составить геометрию, добавляя элементы один за другим.Таким образом, вы можете, используя имя пути (kvg_0994c_s1) в коде позади (и предполагая, что Path.Data всегда является PathGeometry, чтобы вы могли привести его к PathGeometry), вы получите PathGeometry.Figures в исходном списке, затем очистите рисункив отображаемом пути.Затем вы устанавливаете таймер (DispatchTimer может быть достаточно), чтобы вызывать функцию каждые 200 мс или около того, и в этой функции вы добавляете один за другим цифры в PathGeometry.Figures отображаемого пути.Возможно, вам придется настроить как количество частей, которые вы добавляете каждый раз, так и значения таймера, чтобы получить желаемый эффект.И если вам нужна постоянная «скорость» -> вы должны вычислить длину каждой части и отрегулировать.Но было бы неплохо иметь непостоянную скорость, чтобы больше походить на рисование от руки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...