| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | <UserControl x:Class="Venus_Themes.UserControls.FlowPipe"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:converters="clr-namespace:Venus_Themes.Converters"             Name="flowPipeControl" Width="100" Height="8" FlowDirection="{Binding ElementName=flowPipeControl,Path=IsReverse,Converter={StaticResource boolToDirection}}">        <UserControl.Resources>        <converters:BoolToReverse x:Key="boolToReverse"/>        <converters:BoolToDoubleConverter x:Key="boolToDoubleConverter"/>    </UserControl.Resources>    <UserControl.RenderTransform>        <TransformGroup>            <RotateTransform Angle="{Binding ElementName=flowPipeControl,Path=RotateTransformValue}"/>        </TransformGroup>    </UserControl.RenderTransform>    <Canvas MinHeight="4" MinWidth="100" >        <Canvas.Resources>            <Style x:Key="AnimatingFlow" TargetType="{x:Type Line}">                <Style.Triggers>                    <DataTrigger Binding="{Binding ElementName=flowPipeControl,Path=IsFlowing}" Value="True">                        <DataTrigger.EnterActions>                            <BeginStoryboard Name="FlowStoryboard">                                <Storyboard RepeatBehavior="Forever" Timeline.DesiredFrameRate="10" FillBehavior="Stop">                                    <DoubleAnimation Storyboard.TargetProperty="StrokeDashOffset" Duration="0:0:10" From="0" To="80"/>                                </Storyboard>                            </BeginStoryboard>                            <!--<BeginStoryboard >                                <Storyboard>                                    <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:0.1" By="0.5" />                                </Storyboard>                            </BeginStoryboard>-->                        </DataTrigger.EnterActions>                        <DataTrigger.ExitActions>                            <!--<BeginStoryboard>                                <Storyboard>                                    <DoubleAnimation  Storyboard.TargetProperty="StrokeDashOffset" Duration="0:0:0" To="0"/>                                </Storyboard>                            </BeginStoryboard>-->                            <!--<StopStoryboard BeginStoryboardName="FlowStoryboard"/>-->                        </DataTrigger.ExitActions>                    </DataTrigger>                </Style.Triggers>            </Style>        </Canvas.Resources>        <Border   x:Name="border1"    CornerRadius="{Binding ElementName=flowPipeControl,Path=FCornerRadius}"  BorderBrush="Gray"  BorderThickness="0"                   Width="{Binding ElementName=flowPipeControl,Path=Width}" Height="{Binding ElementName=flowPipeControl,Path=Height}">            <Border.Background>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <!--<GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>-->                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.1"/>                    <GradientStop Color="White"  Offset="0.9"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Border.Background>        </Border>        <Line Name="path1"               X1="0" Y1="0" X2="80" Y2="0"              Opacity="{Binding ElementName=flowPipeControl,Path=IsFlowing,Converter={StaticResource boolToDoubleConverter}}"               Stretch="Fill"               Width="{Binding ElementName=flowPipeControl,Path=Width}"               Height="{Binding ElementName=flowPipeControl,Path=Height}"               Stroke="{Binding ElementName=flowPipeControl, Path=FlowColor}"  StrokeDashArray="2,3" StrokeDashCap="Round"              StrokeThickness="5"               Style="{StaticResource AnimatingFlow}" >        </Line>    </Canvas></UserControl>
 |