mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
为线的动画做扩展准备
This commit is contained in:
@@ -104,7 +104,10 @@
|
||||
Height="{Binding SinkConnectorInfo.ConnectorHeight}"
|
||||
Visibility="{Binding IsSelected,Converter={StaticResource BooleanToVisibilityConverter}}" />
|
||||
|
||||
<Ellipse x:Name="ball" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
|
||||
<Path x:Name="ball"
|
||||
Stretch="Fill"
|
||||
Data="{Binding AnimationViewModel.Path}"
|
||||
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
|
||||
Width="{Binding ColorViewModel.LineWidth,Converter={StaticResource MathAddConverter},ConverterParameter=4}"
|
||||
Height="{Binding ColorViewModel.LineWidth,Converter={StaticResource MathAddConverter},ConverterParameter=4}"
|
||||
Panel.ZIndex="1" />
|
||||
|
||||
@@ -41,8 +41,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (this.DataContext is ConnectionViewModel connector && connector.ColorViewModel != null)
|
||||
{
|
||||
connector.ColorViewModel.PropertyChanged -= Connector_PropertyChanged;
|
||||
connector.ColorViewModel.PropertyChanged += Connector_PropertyChanged;
|
||||
connector.AnimationViewModel.PropertyChanged -= Connector_PropertyChanged;
|
||||
connector.AnimationViewModel.PropertyChanged += Connector_PropertyChanged;
|
||||
}
|
||||
this.ball.Visibility = Visibility.Collapsed;
|
||||
await DoAnimation();
|
||||
@@ -52,8 +52,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
switch (e.PropertyName)
|
||||
{
|
||||
case nameof(ColorViewModel.LineAnimation):
|
||||
case nameof(ColorViewModel.LineAnimationDuration):
|
||||
case nameof(AnimationViewModel.LineAnimation):
|
||||
case nameof(AnimationViewModel.Duration):
|
||||
await DoAnimation();
|
||||
break;
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
if (this.DataContext is ConnectionViewModel connector && connector.IsFullConnection)
|
||||
{
|
||||
await System.Threading.Tasks.Task.Delay(100);
|
||||
switch (connector.ColorViewModel.LineAnimation)
|
||||
switch (connector.AnimationViewModel.LineAnimation)
|
||||
{
|
||||
case LineAnimation.None:
|
||||
_story?.Stop(this);
|
||||
@@ -76,14 +76,14 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
connector.ColorViewModel.FillColor.Color = Colors.Red;
|
||||
}
|
||||
PathAnimation(connector.ColorViewModel.LineAnimationDuration);
|
||||
PathAnimation(connector.AnimationViewModel.Duration);
|
||||
break;
|
||||
case LineAnimation.DashAnimation:
|
||||
if (connector.ColorViewModel.LineDashStyle == LineDashStyle.None)
|
||||
{
|
||||
connector.ColorViewModel.LineDashStyle = LineDashStyle.Dash1;
|
||||
}
|
||||
DashAnimation(connector.ColorViewModel.LineAnimationDuration);
|
||||
DashAnimation(connector.AnimationViewModel.Duration);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -128,11 +128,14 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
_story?.Stop(this);
|
||||
_story = new Storyboard();
|
||||
_story.RepeatBehavior = RepeatBehavior.Forever;
|
||||
//_story.RepeatBehavior = RepeatBehavior.Forever;
|
||||
//story.AutoReverse = true;
|
||||
_story.Children.Add(animationX);
|
||||
_story.Children.Add(animationY);
|
||||
_story.Children.Add(animationAngle);
|
||||
_story.Completed += (s, d) => {
|
||||
_story.Begin(this, true);
|
||||
};
|
||||
Storyboard.SetTargetName(animationX, "translate");
|
||||
Storyboard.SetTargetName(animationY, "translate");
|
||||
Storyboard.SetTargetName(animationAngle, "rotate");
|
||||
|
||||
Reference in New Issue
Block a user