FourRopesControl.xaml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <UserControl x:Class="SWRIS.Pages.RealTime.FourRopesControl"
  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.Pages.RealTime"
  7. xmlns:vm="clr-namespace:SWRIS.Models.ViewModel"
  8. xmlns:cvt="clr-namespace:SWRIS.Converters"
  9. xmlns:ctr="clr-namespace:SWRIS.Controls"
  10. xmlns:enum="clr-namespace:SWRIS.Enums"
  11. mc:Ignorable="d" FontSize="20"
  12. Foreground="#FFFFFF"
  13. FontFamily="{StaticResource PuHuiTiRegular}"
  14. d:DesignHeight="800" d:DesignWidth="1200"
  15. x:Name="FourRopesRoot">
  16. <UserControl.Resources>
  17. <cvt:RiskLevelToColorConverter x:Key="RiskLevelToColorConverter"/>
  18. <cvt:RiskLevelToTextConverter x:Key="RiskLevelToTextConverter"/>
  19. <cvt:ConnectivityFaultToColorConverter x:Key="ConnectivityFaultConverter"/>
  20. <cvt:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter"/>
  21. <cvt:ConnectivityToVisibilityConverter x:Key="ConnectivityToVisibilityConverter"/>
  22. <cvt:StringEmptyToVisibilityConverter x:Key="StringEmptyToVisibilityConverter"/>
  23. </UserControl.Resources>
  24. <ItemsControl ItemsSource="{Binding Equipments}" Margin="25,25,0,-20">
  25. <ItemsControl.ItemsPanel>
  26. <ItemsPanelTemplate>
  27. <UniformGrid Columns="2" Rows="2"/>
  28. </ItemsPanelTemplate>
  29. </ItemsControl.ItemsPanel>
  30. <ItemsControl.ItemTemplate>
  31. <DataTemplate>
  32. <Border CornerRadius="10" Margin="0,0,25,25" Loaded="OnCardLoaded">
  33. <Border.Background>
  34. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  35. <GradientStop Color="#2a2956" Offset="0"/>
  36. <GradientStop Color="#161536" Offset="0.40"/>
  37. <GradientStop Color="#1f1e44" Offset="1"/>
  38. </LinearGradientBrush>
  39. </Border.Background>
  40. <Grid>
  41. <Grid.RowDefinitions>
  42. <RowDefinition Height="200"/>
  43. <RowDefinition Height="*"/>
  44. <RowDefinition Height="Auto"/>
  45. </Grid.RowDefinitions>
  46. <Grid.ColumnDefinitions>
  47. <ColumnDefinition Width="*"/>
  48. <ColumnDefinition Width="180"/>
  49. </Grid.ColumnDefinitions>
  50. <!-- 左侧信息区域 -->
  51. <StackPanel Orientation="Vertical" Grid.Row="0" Grid.Column="0" Margin="30,20,10,0">
  52. <DockPanel>
  53. <!-- 钢丝绳状态及名称 -->
  54. <Rectangle Height="22" Width="18" RadiusX="6" RadiusY="6">
  55. <Rectangle.Fill>
  56. <MultiBinding Converter="{StaticResource ConnectivityFaultConverter}">
  57. <Binding Path="IsConnect"/>
  58. <Binding Path="Faults"/>
  59. <Binding Path="Faults.Count" />
  60. </MultiBinding>
  61. </Rectangle.Fill>
  62. </Rectangle>
  63. <TextBlock Text="{Binding RopeName}" FontSize="22" FontWeight="Bold"
  64. FontFamily="{StaticResource PuHuiTiBold}" Margin="13,0"
  65. VerticalAlignment="Center"/>
  66. <StackPanel Orientation="Horizontal"
  67. MouseLeftButtonDown="ParameterSetting_MouseDown"
  68. Cursor="Hand">
  69. <Image Source="/Resources/eqSet.png" Margin="10,0,5,0" Width="20" Height="20"/>
  70. <TextBlock Text="参数设置" FontSize="18" VerticalAlignment="Center"
  71. Foreground="#8D86E5" FontWeight="Regular"/>
  72. </StackPanel>
  73. </DockPanel>
  74. <StackPanel Margin="0,20">
  75. <UniformGrid Columns="2" Rows="2" Width="430" HorizontalAlignment="Left">
  76. <StackPanel Orientation="Horizontal" Margin="0,2">
  77. <TextBlock Text="风险等级" Foreground="#7886B2"/>
  78. <TextBlock FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  79. Margin="20,0"
  80. Text="{Binding RiskLevel,Converter={StaticResource RiskLevelToTextConverter}}"
  81. Foreground="{Binding RiskLevel,Converter={StaticResource RiskLevelToColorConverter}}"/>
  82. </StackPanel>
  83. <StackPanel Orientation="Horizontal" Margin="-20,2,0,0">
  84. <TextBlock Text="起升高度" Foreground="#7886B2"/>
  85. <TextBlock Foreground="#FFFFFF" FontWeight="Bold"
  86. FontFamily="{StaticResource PuHuiTiBold}" Margin="40,0">
  87. <Run Text="{Binding LiftHeight,StringFormat=#0.0}"/>
  88. <Run Text="m"/>
  89. </TextBlock>
  90. </StackPanel>
  91. <StackPanel Orientation="Horizontal" Margin="0,2">
  92. <TextBlock Text="损伤数量" Foreground="#7886B2"/>
  93. <TextBlock Text="{Binding DamageCount}" Foreground="#FFFFFF"
  94. FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  95. Margin="20,0"/>
  96. <TextBlock Text="详情" Foreground="#7F74FF" FontSize="18"
  97. FontWeight="Regular" Cursor="Hand"
  98. MouseLeftButtonDown="EquipmentAlarm_MouseDown"
  99. Visibility="{Binding DamageCount,Converter={StaticResource CollectionCountToVisibilityConverter}}"/>
  100. </StackPanel>
  101. <StackPanel Orientation="Horizontal" Margin="-20,2,0,2">
  102. <TextBlock Text="最大损伤值" Foreground="#7886B2"/>
  103. <TextBlock Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0">
  104. <Run Text="{Binding MaxDamageValue,StringFormat=#0.0}"/>
  105. <Run Text="%"/>
  106. </TextBlock>
  107. </StackPanel>
  108. </UniformGrid>
  109. <ctr:DamageRangeControl HorizontalAlignment="Stretch"
  110. Height="45"
  111. FontSize="16"
  112. Margin="0,20,30,0"
  113. MildCount="{Binding MildCount}"
  114. LightCount="{Binding LightCount}"
  115. ModerateCount="{Binding ModerateCount}"
  116. SevereCount="{Binding SevereCount}"
  117. CriticalCount="{Binding CriticalCount}"
  118. ExtremeCount="{Binding ExtremeCount}"/>
  119. </StackPanel>
  120. </StackPanel>
  121. <!-- 右侧绳索设备控制 -->
  122. <ctr:RopeEquipmentControl Grid.RowSpan="2" Grid.Column="1" Grid.Row="0"
  123. PanelMargin="-80,25,0,0" Margin="0,0,0,-16"
  124. EquipmentTopPosition="100"
  125. PanelNameFontSize="18"
  126. PanelValueFontSize="20"
  127. RopeImageSource="/Resources/rope_block.png"
  128. EquipmentImageSource="/Resources/equipment.png"
  129. AnimationDuration="0.5">
  130. <ctr:RopeEquipmentControl.Style>
  131. <Style TargetType="ctr:RopeEquipmentControl">
  132. <Style.Triggers>
  133. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Stoped}">
  134. <Setter Property="IsAnimationRunning" Value="False"/>
  135. </DataTrigger>
  136. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Forward}">
  137. <Setter Property="IsAnimationRunning" Value="True"/>
  138. <Setter Property="IsAnimationReversed" Value="False"/>
  139. </DataTrigger>
  140. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Reverse}">
  141. <Setter Property="IsAnimationRunning" Value="True"/>
  142. <Setter Property="IsAnimationReversed" Value="True"/>
  143. </DataTrigger>
  144. </Style.Triggers>
  145. </Style>
  146. </ctr:RopeEquipmentControl.Style>
  147. </ctr:RopeEquipmentControl>
  148. <!-- 实时图表 -->
  149. <ctr:RealTimeLineChart Grid.Row="1" Margin="0,0,-90,-5" x:Name="ChartLine"
  150. SensorCount="{Binding SensorCount}"
  151. SamplingStep="{Binding SamplingStep,Mode=TwoWay}"
  152. RopeLength="{Binding RopeLength}"/>
  153. <!-- 调试信息 + 实时数据 -->
  154. <DockPanel Grid.Row="2" VerticalAlignment="Center" Margin="20,-7,10,2">
  155. <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left"
  156. Visibility="{Binding DebugMessage.Message,Converter={StaticResource StringEmptyToVisibilityConverter}}">
  157. <TextBlock Style="{StaticResource HeartbeatTextBlockStyle}" FontSize="15" Margin="0,2,0,0"
  158. VerticalAlignment="Center" Foreground="#7F74FF"/>
  159. <TextBlock Text="{Binding DebugMessage.DateTime,StringFormat=HH:mm:ss}"
  160. FontSize="15" Margin="5,0" VerticalAlignment="Center"
  161. Foreground="#7F74FF"/>
  162. <TextBlock Text="{Binding DebugMessage.Message}" FontSize="15" Margin="5,0"
  163. VerticalAlignment="Center" Foreground="#7F74FF"/>
  164. </StackPanel>
  165. <ItemsControl ItemsSource="{Binding LiveStreamValues}" Margin="10,4,-90,0" HorizontalAlignment="Right">
  166. <ItemsControl.ItemsPanel>
  167. <ItemsPanelTemplate>
  168. <WrapPanel/>
  169. </ItemsPanelTemplate>
  170. </ItemsControl.ItemsPanel>
  171. <ItemsControl.ItemTemplate>
  172. <DataTemplate>
  173. <TextBlock Text="{Binding}" FontSize="12" Margin="4,0,0,0"
  174. Width="20" Foreground="White" Opacity="0.2" FontWeight="Medium">
  175. <TextBlock.Style>
  176. <Style TargetType="TextBlock">
  177. <Style.Triggers>
  178. <DataTrigger Binding="{Binding}" Value="0">
  179. <Setter Property="Visibility" Value="Collapsed"/>
  180. </DataTrigger>
  181. </Style.Triggers>
  182. </Style>
  183. </TextBlock.Style>
  184. </TextBlock>
  185. </DataTemplate>
  186. </ItemsControl.ItemTemplate>
  187. </ItemsControl>
  188. </DockPanel>
  189. </Grid>
  190. </Border>
  191. </DataTemplate>
  192. </ItemsControl.ItemTemplate>
  193. </ItemsControl>
  194. </UserControl>