RopeEquipmentControl.xaml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <UserControl x:Class="SWRIS.Controls.RopeEquipmentControl"
  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:SWRIS.Controls"
  7. xmlns:cvt="clr-namespace:SWRIS.Converters"
  8. mc:Ignorable="d" x:Name="Root"
  9. d:DesignHeight="900" d:DesignWidth="300">
  10. <UserControl.Resources>
  11. <Storyboard x:Key="RopeAnimation" RepeatBehavior="Forever">
  12. <RectAnimation Storyboard.TargetName="RopeRectangle"
  13. Storyboard.TargetProperty="Viewport"
  14. Duration="0:0:0.5"/>
  15. </Storyboard>
  16. <cvt:LimitStateToColorConverter x:Key="LimitStateToColorConverter"/>
  17. <cvt:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
  18. </UserControl.Resources>
  19. <Grid Margin="0,0,30,0">
  20. <Grid.ColumnDefinitions>
  21. <ColumnDefinition Width="*"/>
  22. <ColumnDefinition Width="*"/>
  23. </Grid.ColumnDefinitions>
  24. <StackPanel Grid.Column="0" Orientation="Vertical" Margin="{Binding PanelMargin,ElementName=Root}">
  25. <ItemsControl ItemsSource="{Binding Limits}" HorizontalAlignment="Right" Margin="-10,-10,0,10">
  26. <ItemsControl.ItemsPanel>
  27. <ItemsPanelTemplate>
  28. <StackPanel Orientation="Horizontal"/>
  29. </ItemsPanelTemplate>
  30. </ItemsControl.ItemsPanel>
  31. <ItemsControl.ItemTemplate>
  32. <DataTemplate>
  33. <Border Visibility="{Binding IsEnable,Converter={StaticResource BoolToVisibilityConverter}}"
  34. Background="{Binding State,Converter={StaticResource LimitStateToColorConverter},ConverterParameter=0.20}"
  35. MinWidth="80" Height="24" CornerRadius="11" Margin="5,0,0,0">
  36. <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
  37. <Ellipse Height="10" Width="10" Margin="0,0,5,0" Fill="{Binding State,Converter={StaticResource LimitStateToColorConverter}}"/>
  38. <TextBlock Text="{Binding Name}" Foreground="{Binding State,Converter={StaticResource LimitStateToColorConverter}}"
  39. FontSize="14" FontWeight="Regular" VerticalAlignment="Center"/>
  40. </StackPanel>
  41. </Border>
  42. </DataTemplate>
  43. </ItemsControl.ItemTemplate>
  44. </ItemsControl>
  45. <TextBlock Text="检测位置" Foreground="#7886B2" FontSize="{Binding PanelNameFontSize,ElementName=Root}"
  46. FontWeight="Regular" HorizontalAlignment="Right" Visibility="Visible"/>
  47. <TextBlock FontSize="{Binding PanelValueFontSize,ElementName=Root}" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  48. Margin="-30,-3,0,0" HorizontalAlignment="Right" Visibility="Visible">
  49. <Run Text="{Binding AbsolutePosition,StringFormat=#0.00}"/>
  50. <Run Text="m"/>
  51. </TextBlock>
  52. <TextBlock Text="检测速度" Foreground="#7886B2" FontSize="{Binding PanelNameFontSize,ElementName=Root}"
  53. FontWeight="Regular" HorizontalAlignment="Right"/>
  54. <TextBlock FontSize="{Binding PanelValueFontSize,ElementName=Root}" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  55. Margin="-30,-3,0,0" HorizontalAlignment="Right">
  56. <Run Text="{Binding Speed,StringFormat=#0.00}"/>
  57. <Run Text="m/min"/>
  58. <TextBlock.Style>
  59. <Style TargetType="TextBlock">
  60. <Style.Triggers>
  61. <DataTrigger Binding="{Binding IsSpeedStable}" Value="False">
  62. <Setter Property="Foreground" >
  63. <Setter.Value>
  64. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  65. <GradientStop Color="#FFFFFF" Offset="0.45"/>
  66. <GradientStop Color="#FF6C00" Offset="1"/>
  67. </LinearGradientBrush>
  68. </Setter.Value>
  69. </Setter>
  70. </DataTrigger>
  71. </Style.Triggers>
  72. </Style>
  73. </TextBlock.Style>
  74. </TextBlock>
  75. </StackPanel>
  76. <Canvas Grid.Column="1">
  77. <Rectangle Width="40" Height="{Binding RopeHeight,ElementName=Root}" Canvas.Left="30">
  78. <Rectangle.Fill>
  79. <ImageBrush x:Name="RopeRectangle" ImageSource="{Binding RopeImageSource,ElementName=Root}" TileMode="FlipX" Viewport="0,0,40,34"
  80. ViewportUnits="Absolute"/>
  81. </Rectangle.Fill>
  82. </Rectangle>
  83. <Canvas Canvas.Top="{Binding EquipmentTopPosition,ElementName=Root}">
  84. <Image Width="90" Canvas.Left="5">
  85. <Image.Style>
  86. <Style TargetType="Image">
  87. <Style.Triggers>
  88. <DataTrigger Binding="{Binding IsAlerting}" Value="False">
  89. <Setter Property="Source" Value="/Resources/blue_bg.png"/>
  90. </DataTrigger>
  91. <DataTrigger Binding="{Binding IsAlerting}" Value="True">
  92. <Setter Property="Source" Value="/Resources/red_bg.png"/>
  93. </DataTrigger>
  94. </Style.Triggers>
  95. </Style>
  96. </Image.Style>
  97. </Image>
  98. <Image Source="{Binding EquipmentImageSource,ElementName=Root}" Width="100" Canvas.Top="70"/>
  99. </Canvas>
  100. </Canvas>
  101. </Grid>
  102. </UserControl>