| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <UserControl x:Class="MECF.Framework.UI.Client.IndustrialControl.GasSingularLine"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              xmlns:local="clr-namespace:MECF.Framework.UI.Client.IndustrialControl"              xmlns:converters="clr-namespace:MECF.Framework.UI.Client.IndustrialControl.Converters"             mc:Ignorable="d" Height="95" Width="489">    <UserControl.Resources>        <converters:MultiplesValueConverter x:Key="multiConverter"></converters:MultiplesValueConverter>        <converters:VisibilityConverter x:Key="visibilityConverter"></converters:VisibilityConverter>    </UserControl.Resources>    <Grid>        <VisualStateManager.VisualStateGroups>            <VisualStateGroup>                <VisualState Name="WEFlowState">                    <Storyboard RepeatBehavior="Forever">                        <DoubleAnimation Duration="0:0:1" From="0" To="10"                                          RepeatBehavior="Forever"                                         Storyboard.TargetName="path1"                                         Storyboard.TargetProperty="StrokeDashOffset"/>                    </Storyboard>                </VisualState>                <VisualState Name="EWFlowState">                    <Storyboard RepeatBehavior="Forever">                        <DoubleAnimation Duration="0:0:1" From="0" To="-10"                                          RepeatBehavior="Forever"                                         Storyboard.TargetName="path1"                                         Storyboard.TargetProperty="StrokeDashOffset"/>                    </Storyboard>                </VisualState>            </VisualStateGroup>        </VisualStateManager.VisualStateGroups>        <Grid x:Name="grid1">            <Grid.ColumnDefinitions>                <ColumnDefinition Width="auto"></ColumnDefinition>                <ColumnDefinition Width="*"></ColumnDefinition>                <ColumnDefinition Width="auto"></ColumnDefinition>            </Grid.ColumnDefinitions>            <Canvas x:Name="canvas1" Grid.Column="0" Width="{Binding ElementName=grid1,Path=ActualHeight}" Height="{Binding ElementName=grid1,Path=ActualHeight}"  ClipToBounds="True">                <Ellipse x:Name="ellipe1" Grid.Column="0" Width="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"                          Height="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}" Margin="0,0,0,0"                         Canvas.Left="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=0}"                         Canvas.Top="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=0}">                    <Ellipse.Fill>                        <RadialGradientBrush >                            <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                            <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                        </RadialGradientBrush>                    </Ellipse.Fill>                </Ellipse>            </Canvas>            <Canvas x:Name="canvas2" Grid.Column="2" Width="{Binding ElementName=grid1,Path=ActualHeight}" Height="{Binding ElementName=grid1,Path=ActualHeight}" ClipToBounds="True">                <Ellipse x:Name="ellipe2" Width="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"                          Height="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"                          Canvas.Left="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=-1}"                         Canvas.Top="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=-1}">                    <Ellipse.Fill>                        <RadialGradientBrush >                            <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                            <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                        </RadialGradientBrush>                    </Ellipse.Fill>                </Ellipse>            </Canvas>            <Rectangle Grid.Column="1" Stretch="Fill">                <Rectangle.Fill>                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">                        <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                        <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=EdgeColor}" Offset="1"></GradientStop>                    </LinearGradientBrush>                </Rectangle.Fill>            </Rectangle>        </Grid>        <Path x:Name="path1"               Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=PipeLineActive,Converter={StaticResource visibilityConverter}}"              StrokeThickness="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=PipeLineWidth}"               StrokeDashOffset="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=LineOffect}" StrokeDashArray="5,5">            <Path.Stroke>                <SolidColorBrush Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:GasSingularLine}},Path=ActiveLineCenterColor}"></SolidColorBrush>            </Path.Stroke>        </Path>    </Grid></UserControl>
 |