PipeLine.xaml 7.2 KB

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