Member 12618031 Ответов: 2

Эффект рисования круга.


Используя следующий код, я получаю эффект рисования линий.

Line newLine = new Line();
newLine.StrokeThickness = 1;
newLine.Stroke = Brushes.Black;
newLine.X1 = 50;
newLine.X2 = 50;
newLine.Y1 = 50;
newLine.Y2 = 50;
DoubleAnimation lineXAnimation = new DoubleAnimation();
lineXAnimation.From = newLine.X2;
lineXAnimation.To = 500;
lineXAnimation.Duration = TimeSpan.FromSeconds(2);

newLine.BeginAnimation(Line.X2Property, lineXAnimation);


Как я могу получить эффект рисования круга, выполненного в том же стиле?

Что я уже пробовал:

Я ищу, как получить эффект рисования круга?

2 Ответов

Рейтинг:
4

Member 12618031

Как ни странно, но японцы помогли решить этот вопрос. Класс Microsoft.Expression.Формы.Дуга это облегчает рисование кругов.

using Microsoft.Expression.Shapes;

Arc a = new Arc();
a.ArcThicknessUnit = Microsoft.Expression.Media.UnitType.Pixel;
a.ArcThickness = 10;
a.StrokeThickness = 1;
a.Fill = new SolidColorBrush(Colors.Aqua);
a.Stroke = new SolidColorBrush(Colors.DarkMagenta);
a.StartAngle = 0;
a.EndAngle = 0;
a.Width = 200;
a.Height = 200;
a.Stretch = Stretch.None;
stp.Children.Add(a);

DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromMilliseconds(10);
dt.Tick += (s, e) => { a.EndAngle = a.EndAngle + 4; };
dt.Start();


Рейтинг:
2

Member 12618031

Вы предлагаете простые статические методы рисования. Я спрашиваю об анимации. Не рисуйте круг, но получите эффект рисования. Внимательно посмотрите на код строки.

Richard Deeming

Посмотрите на документацию еще раз. Анимация фигуры-это одно и то же, независимо от формы, которую вы рисуете.

Member 12618031

Обратите внимание на эффект рисования линий. Пример Рисования Линий[^]

Maciej Los

5ed!

Member 12618031

У вас есть ссылка, где это описано? Никак не могу найти.

Richard Deeming

Обзор фигур и основных чертежей - WPF | Microsoft Docs[^]
Elipse и Line оба являются производными от Shape класс.

Обзор анимации - WPF | Microsoft Docs[^]
Анимация в WPF работает практически на любом DependencyProperty принадлежность к классу, реализующему IAnimatable. Все UIElement классы, включая все Shapes, реализуйте этот интерфейс.

Свойства, доступные для анимации, будут варьироваться в зависимости от формы, которую вы анимируете. Но процесс их оживления остается тем же самым.

Member 12618031

Самый близкий к моему вопросу, который я нашел, - это тема "радиальный индикатор выполнения". Но есть много дополнительного кода. Мне нужно проще - "нарисовал и забыл". Вы ошибаетесь, если думаете, что линия и круг-это одно и то же.

Richard Deeming

Я не говорил, что линия и круг-это "одно и то же". Я только сказал, что они оба такие. Shapeс.

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

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

Member 12618031

Большое спасибо. Я уже нашел решение по этому вопросу. См. решение № 2.

Member 12618031

Я привожу этот пример сочетания рисования круга и линий. Пример[^].