PipeLine.xaml 7.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <UserControl x:Class="MECF.Framework.UI.Client.IndustrialControl.ELK.PipeLine"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:MECF.Framework.UI.Client.IndustrialControl.ELK" xmlns:converters="clr-namespace:MECF.Framework.UI.Client.IndustrialControl.Converters"
  7. mc:Ignorable="d" Height="95" Width="489">
  8. <UserControl.Resources>
  9. <converters:MultiplesValueConverter x:Key="multiConverter"></converters:MultiplesValueConverter>
  10. <converters:VisibilityConverter x:Key="visibilityConverter"></converters:VisibilityConverter>
  11. </UserControl.Resources>
  12. <Grid>
  13. <VisualStateManager.VisualStateGroups>
  14. <VisualStateGroup>
  15. <VisualState Name="WEFlowState">
  16. <Storyboard RepeatBehavior="Forever">
  17. <DoubleAnimation Duration="0:0:1" From="0" To="10"
  18. RepeatBehavior="Forever"
  19. Storyboard.TargetName="path1"
  20. Storyboard.TargetProperty="StrokeDashOffset"/>
  21. </Storyboard>
  22. </VisualState>
  23. <VisualState Name="EWFlowState">
  24. <Storyboard RepeatBehavior="Forever">
  25. <DoubleAnimation Duration="0:0:1" From="0" To="-10"
  26. RepeatBehavior="Forever"
  27. Storyboard.TargetName="path1"
  28. Storyboard.TargetProperty="StrokeDashOffset"/>
  29. </Storyboard>
  30. </VisualState>
  31. </VisualStateGroup>
  32. </VisualStateManager.VisualStateGroups>
  33. <Grid x:Name="grid1">
  34. <Grid.ColumnDefinitions>
  35. <ColumnDefinition Width="auto"></ColumnDefinition>
  36. <ColumnDefinition Width="*"></ColumnDefinition>
  37. <ColumnDefinition Width="auto"></ColumnDefinition>
  38. </Grid.ColumnDefinitions>
  39. <Canvas x:Name="canvas1" Grid.Column="0" Width="{Binding ElementName=grid1,Path=ActualHeight}" Height="{Binding ElementName=grid1,Path=ActualHeight}" ClipToBounds="True">
  40. <Ellipse x:Name="ellipe1" Grid.Column="0" Width="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"
  41. Height="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}" Margin="0,0,0,0"
  42. Canvas.Left="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=0}"
  43. Canvas.Top="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=0}">
  44. <Ellipse.Fill>
  45. <RadialGradientBrush RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
  46. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="0"></GradientStop>
  47. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=CenterColor}" Offset="0.5"></GradientStop>
  48. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="1"></GradientStop>
  49. </RadialGradientBrush>
  50. </Ellipse.Fill>
  51. </Ellipse>
  52. </Canvas>
  53. <Canvas x:Name="canvas2" Grid.Column="2" Width="{Binding ElementName=grid1,Path=ActualHeight}" Height="{Binding ElementName=grid1,Path=ActualHeight}" ClipToBounds="True">
  54. <Ellipse x:Name="ellipe2" Width="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"
  55. Height="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=2}"
  56. Canvas.Left="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=-1}"
  57. Canvas.Top="{Binding ElementName=grid1,Path=ActualHeight,Converter={StaticResource multiConverter},ConverterParameter=-1}">
  58. <Ellipse.Fill>
  59. <RadialGradientBrush RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
  60. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="0"></GradientStop>
  61. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=CenterColor}" Offset="0.5"></GradientStop>
  62. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="1"></GradientStop>
  63. </RadialGradientBrush>
  64. </Ellipse.Fill>
  65. </Ellipse>
  66. </Canvas>
  67. <Rectangle Grid.Column="1" Stretch="Fill">
  68. <Rectangle.Fill>
  69. <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
  70. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="0"></GradientStop>
  71. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=CenterColor}" Offset="0.5"></GradientStop>
  72. <GradientStop Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=EdgeColor}" Offset="1"></GradientStop>
  73. </LinearGradientBrush>
  74. </Rectangle.Fill>
  75. </Rectangle>
  76. </Grid>
  77. <Path x:Name="path1"
  78. Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=PipeLineActive,Converter={StaticResource visibilityConverter}}"
  79. StrokeThickness="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=PipeLineWidth}"
  80. StrokeDashOffset="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=LineOffect}" StrokeDashArray="1200">
  81. <Path.Stroke>
  82. <SolidColorBrush Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:PipeLine}},Path=ActiveLineCenterColor}"></SolidColorBrush>
  83. </Path.Stroke>
  84. </Path>
  85. </Grid>
  86. </UserControl>