TwoRopesPage.xaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <Page x:Class="SWRIS.Pages.RealTime.TwoRopesPage"
  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:cvt="clr-namespace:SWRIS.Converters"
  8. xmlns:ctr="clr-namespace:SWRIS.Controls"
  9. xmlns:vm="clr-namespace:SWRIS.Models.ViewModel"
  10. xmlns:enum="clr-namespace:SWRIS.Enums"
  11. mc:Ignorable="d" FontSize="20"
  12. Foreground="#FFFFFF"
  13. FontFamily="{StaticResource PuHuiTiRegular}"
  14. d:DesignHeight="900" d:DesignWidth="1920"
  15. Title="TwoRopesPage">
  16. <Page.DataContext>
  17. <vm:TwoRopesViewModel/>
  18. </Page.DataContext>
  19. <Page.Resources>
  20. <cvt:RiskLevelToColorConverter x:Key="RiskLevelToColorConverter"/>
  21. <cvt:RiskLevelToTextConverter x:Key="RiskLevelToTextConverter"/>
  22. <cvt:ConnectivityFaultToColorConverter x:Key="ConnectivityFaultConverter"/>
  23. <cvt:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter"/>
  24. <cvt:ConnectivityToVisibilityConverter x:Key="ConnectivityToVisibilityConverter"/>
  25. <cvt:StringEmptyToVisibilityConverter x:Key="StringEmptyToVisibilityConverter"/>
  26. </Page.Resources>
  27. <Grid Margin="25,30,25,7">
  28. <Grid.ColumnDefinitions>
  29. <ColumnDefinition Width="*"/>
  30. <ColumnDefinition Width="370"/>
  31. </Grid.ColumnDefinitions>
  32. <Grid.RowDefinitions>
  33. <RowDefinition Height="*"/>
  34. <RowDefinition Height="*"/>
  35. </Grid.RowDefinitions>
  36. <Border Grid.Row="0" Grid.Column="0" CornerRadius="10" Margin="0,0,0,15" DataContext="{Binding FirstEquipmentData}">
  37. <Border.Background>
  38. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  39. <GradientStop Color="#2a2956" Offset="0"/>
  40. <GradientStop Color="#161536" Offset="0.40"/>
  41. <GradientStop Color="#1f1e44" Offset="1"/>
  42. </LinearGradientBrush>
  43. </Border.Background>
  44. <Grid>
  45. <Grid.RowDefinitions>
  46. <RowDefinition Height="180"/>
  47. <RowDefinition Height="*"/>
  48. <RowDefinition Height="Auto"/>
  49. </Grid.RowDefinitions>
  50. <Grid.ColumnDefinitions>
  51. <ColumnDefinition Width="*"/>
  52. <ColumnDefinition Width="240"/>
  53. </Grid.ColumnDefinitions>
  54. <StackPanel Orientation="Vertical" Grid.Row="0" Grid.Column="0" Margin="40,30,70,0">
  55. <DockPanel>
  56. <!--钢丝绳状态及名称-->
  57. <Rectangle Height="25" Width="20" RadiusX="6" RadiusY="6">
  58. <Rectangle.Fill>
  59. <MultiBinding Converter="{StaticResource ConnectivityFaultConverter}">
  60. <Binding Path="IsConnect"/>
  61. <Binding Path="Faults"/>
  62. </MultiBinding>
  63. </Rectangle.Fill>
  64. </Rectangle>
  65. <TextBlock Text="{Binding RopeName}" FontSize="30" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="13,0" VerticalAlignment="Center"/>
  66. <StackPanel Orientation="Horizontal" Margin="30,0" MouseLeftButtonDown="FirstParameterSetting_MouseDown" Cursor="Hand">
  67. <Image Source="/Resources/eqSet.png" Margin="10,0" Width="26" Height="26"/>
  68. <TextBlock Text="参数设置" FontSize="22" VerticalAlignment="Center" Foreground="#8D86E5" FontWeight="Regular"/>
  69. </StackPanel>
  70. <!--消息通知-->
  71. <ctr:NotificationBar Height="50" MaxWidth="800" HorizontalAlignment="Right"
  72. Messages="{Binding Messages}"/>
  73. </DockPanel>
  74. <DockPanel Margin="0,20">
  75. <UniformGrid Columns="2" Rows="2" Width="400" HorizontalAlignment="Left">
  76. <StackPanel Orientation="Horizontal" Margin="0,5">
  77. <TextBlock Text="风险等级" Foreground="#7886B2"/>
  78. <TextBlock FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0"
  79. Text="{Binding RiskLevel,Converter={StaticResource RiskLevelToTextConverter}}"
  80. Foreground="{Binding RiskLevel,Converter={StaticResource RiskLevelToColorConverter}}"/>
  81. </StackPanel>
  82. <StackPanel Orientation="Horizontal" Margin="0,5">
  83. <TextBlock Text="起升高度" Foreground="#7886B2"/>
  84. <TextBlock Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="43,0">
  85. <Run Text="{Binding LiftHeight,StringFormat=#0.0}"/>
  86. <Run Text="m"/>
  87. </TextBlock>
  88. </StackPanel>
  89. <StackPanel Orientation="Horizontal" Margin="0,5">
  90. <TextBlock Text="损伤数量" Foreground="#7886B2"/>
  91. <TextBlock Text="{Binding DamageCount}" Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0" />
  92. <TextBlock Text="详情" Foreground="#7F74FF" FontSize="20" FontWeight="Regular" VerticalAlignment="Bottom" Cursor="Hand"
  93. Visibility="{Binding DamageCount,Converter={StaticResource CollectionCountToVisibilityConverter}}"
  94. MouseLeftButtonDown="FirstEquipmentAlarm_MouseDown"/>
  95. </StackPanel>
  96. <StackPanel Orientation="Horizontal" Margin="0,5">
  97. <TextBlock Text="最大损伤值" Foreground="#7886B2"/>
  98. <TextBlock Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0">
  99. <Run Text="{Binding MaxDamageValue,StringFormat=#0.0}"/>
  100. <Run Text="%"/>
  101. </TextBlock>
  102. </StackPanel>
  103. </UniformGrid>
  104. <ctr:DamageRangeControl HorizontalAlignment="Stretch" Height="45" FontSize="16" Margin="100,35,0,0"
  105. MildCount="{Binding MildCount}" LightCount="{Binding LightCount}"
  106. ModerateCount="{Binding ModerateCount}" SevereCount="{Binding SevereCount}"
  107. CriticalCount="{Binding CriticalCount}" ExtremeCount="{Binding ExtremeCount}"/>
  108. </DockPanel>
  109. </StackPanel>
  110. <ctr:RopeEquipmentControl Grid.RowSpan="2" Grid.Column="1" Grid.Row="0" Margin="0,0,0,-20"
  111. PanelMargin="-80,40,0,0"
  112. EquipmentTopPosition="160"
  113. PanelNameFontSize="18"
  114. PanelValueFontSize="20"
  115. RopeImageSource="/Resources/rope_block.png"
  116. EquipmentImageSource="/Resources/equipment.png"
  117. AnimationDuration="0.5" RopeHeight="435">
  118. <ctr:RopeEquipmentControl.Style>
  119. <Style TargetType="ctr:RopeEquipmentControl">
  120. <Style.Triggers>
  121. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Stoped}">
  122. <Setter Property="IsAnimationRunning" Value="False"/>
  123. </DataTrigger>
  124. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Forward}">
  125. <Setter Property="IsAnimationRunning" Value="True"/>
  126. <Setter Property="IsAnimationReversed" Value="False"/>
  127. </DataTrigger>
  128. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Reverse}">
  129. <Setter Property="IsAnimationRunning" Value="True"/>
  130. <Setter Property="IsAnimationReversed" Value="True"/>
  131. </DataTrigger>
  132. </Style.Triggers>
  133. </Style>
  134. </ctr:RopeEquipmentControl.Style>
  135. </ctr:RopeEquipmentControl>
  136. <ctr:RealTimeLineChart x:Name="firstChartLine" Grid.Row="1"
  137. Margin="25,10,-70,0"
  138. SensorCount="{Binding SensorCount}"
  139. SamplingStep="{Binding SamplingStep}"
  140. RopeLength="{Binding RopeLength}"/>
  141. <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="40,-5,-100,5"
  142. Visibility="{Binding DebugMessage.Message,Converter={StaticResource StringEmptyToVisibilityConverter}}">
  143. <TextBlock Style="{StaticResource HeartbeatTextBlockStyle}" FontSize="17" VerticalAlignment="Center" Foreground="#7F74FF"/>
  144. <TextBlock Text="{Binding DebugMessage.DateTime,StringFormat=HH:mm:ss}" FontSize="16" Margin="8,0,5,0" VerticalAlignment="Center" Foreground="#7F74FF"/>
  145. <TextBlock Text="{Binding DebugMessage.Message}" FontSize="16" Margin="5,0" VerticalAlignment="Center" Foreground="#7F74FF"/>
  146. </StackPanel>
  147. </Grid>
  148. </Border>
  149. <Border Grid.Row="1" Grid.Column="0" CornerRadius="10" Margin="0,15,0,0" DataContext="{Binding SecondEquipmentData}">
  150. <Border.Background>
  151. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  152. <GradientStop Color="#2a2956" Offset="0"/>
  153. <GradientStop Color="#161536" Offset="0.40"/>
  154. <GradientStop Color="#1f1e44" Offset="1"/>
  155. </LinearGradientBrush>
  156. </Border.Background>
  157. <Grid>
  158. <Grid.RowDefinitions>
  159. <RowDefinition Height="180"/>
  160. <RowDefinition Height="*"/>
  161. <RowDefinition Height="Auto"/>
  162. </Grid.RowDefinitions>
  163. <Grid.ColumnDefinitions>
  164. <ColumnDefinition Width="*"/>
  165. <ColumnDefinition Width="240"/>
  166. </Grid.ColumnDefinitions>
  167. <StackPanel Orientation="Vertical" Grid.Row="0" Grid.Column="0" Margin="40,30,70,0">
  168. <DockPanel>
  169. <!--钢丝绳状态及名称-->
  170. <Rectangle Height="25" Width="20" RadiusX="6" RadiusY="6">
  171. <Rectangle.Fill>
  172. <MultiBinding Converter="{StaticResource ConnectivityFaultConverter}">
  173. <Binding Path="IsConnect"/>
  174. <Binding Path="Faults"/>
  175. </MultiBinding>
  176. </Rectangle.Fill>
  177. </Rectangle>
  178. <TextBlock Text="{Binding RopeName}" FontSize="30" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="13,0" VerticalAlignment="Center"/>
  179. <StackPanel Orientation="Horizontal" Margin="30,0" MouseLeftButtonDown="SecondParameterSetting_MouseDown" Cursor="Hand">
  180. <Image Source="/Resources/eqSet.png" Margin="10,0" Width="26" Height="26"/>
  181. <TextBlock Text="参数设置" FontSize="22" VerticalAlignment="Center" Foreground="#8D86E5" FontWeight="Regular"/>
  182. </StackPanel>
  183. <!--消息通知-->
  184. <ctr:NotificationBar Height="50" MaxWidth="800" HorizontalAlignment="Right"
  185. Messages="{Binding Messages}"/>
  186. </DockPanel>
  187. <DockPanel Margin="0,20">
  188. <UniformGrid Columns="2" Rows="2" Width="400" HorizontalAlignment="Left">
  189. <StackPanel Orientation="Horizontal" Margin="0,5">
  190. <TextBlock Text="风险等级" Foreground="#7886B2"/>
  191. <TextBlock FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0"
  192. Text="{Binding RiskLevel,Converter={StaticResource RiskLevelToTextConverter}}"
  193. Foreground="{Binding RiskLevel,Converter={StaticResource RiskLevelToColorConverter}}"/>
  194. </StackPanel>
  195. <StackPanel Orientation="Horizontal" Margin="0,5">
  196. <TextBlock Text="起升高度" Foreground="#7886B2"/>
  197. <TextBlock Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="43,0">
  198. <Run Text="{Binding LiftHeight,StringFormat=#0.0}"/>
  199. <Run Text="m"/>
  200. </TextBlock>
  201. </StackPanel>
  202. <StackPanel Orientation="Horizontal" Margin="0,5">
  203. <TextBlock Text="损伤数量" Foreground="#7886B2"/>
  204. <TextBlock Text="{Binding DamageCount}" Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0" />
  205. <TextBlock Text="详情" Foreground="#7F74FF" FontSize="20" FontWeight="Regular" VerticalAlignment="Bottom" Cursor="Hand"
  206. Visibility="{Binding DamageCount,Converter={StaticResource CollectionCountToVisibilityConverter}}"
  207. MouseLeftButtonDown="SecondEquipmentAlarm_MouseDown"/>
  208. </StackPanel>
  209. <StackPanel Orientation="Horizontal" Margin="0,5">
  210. <TextBlock Text="最大损伤值" Foreground="#7886B2"/>
  211. <TextBlock Foreground="#FFFFFF" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}" Margin="20,0">
  212. <Run Text="{Binding MaxDamageValue,StringFormat=#0.0}"/>
  213. <Run Text="%"/>
  214. </TextBlock>
  215. </StackPanel>
  216. </UniformGrid>
  217. <ctr:DamageRangeControl HorizontalAlignment="Stretch" Height="45" FontSize="16" Margin="100,35,0,0"
  218. MildCount="{Binding MildCount}" LightCount="{Binding LightCount}"
  219. ModerateCount="{Binding ModerateCount}" SevereCount="{Binding SevereCount}"
  220. CriticalCount="{Binding CriticalCount}" ExtremeCount="{Binding ExtremeCount}"/>
  221. </DockPanel>
  222. </StackPanel>
  223. <ctr:RopeEquipmentControl Grid.RowSpan="2" Grid.Column="1" Grid.Row="0" Margin="0,0,0,-20"
  224. PanelMargin="-80,40,0,0"
  225. EquipmentTopPosition="160"
  226. PanelNameFontSize="18"
  227. PanelValueFontSize="20"
  228. RopeImageSource="/Resources/rope_block.png"
  229. EquipmentImageSource="/Resources/equipment.png"
  230. AnimationDuration="0.5" RopeHeight="435">
  231. <ctr:RopeEquipmentControl.Style>
  232. <Style TargetType="ctr:RopeEquipmentControl">
  233. <Style.Triggers>
  234. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Stoped}">
  235. <Setter Property="IsAnimationRunning" Value="False"/>
  236. </DataTrigger>
  237. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Forward}">
  238. <Setter Property="IsAnimationRunning" Value="True"/>
  239. <Setter Property="IsAnimationReversed" Value="False"/>
  240. </DataTrigger>
  241. <DataTrigger Binding="{Binding Direction}" Value="{x:Static enum:DirectionState.Reverse}">
  242. <Setter Property="IsAnimationRunning" Value="True"/>
  243. <Setter Property="IsAnimationReversed" Value="True"/>
  244. </DataTrigger>
  245. </Style.Triggers>
  246. </Style>
  247. </ctr:RopeEquipmentControl.Style>
  248. </ctr:RopeEquipmentControl>
  249. <ctr:RealTimeLineChart x:Name="secondChartLine" Grid.Row="1"
  250. Margin="25,10,-70,0"
  251. SensorCount="{Binding SensorCount}"
  252. SamplingStep="{Binding SamplingStep}"
  253. RopeLength="{Binding RopeLength}"/>
  254. <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="40,-5,-100,5"
  255. Visibility="{Binding DebugMessage.Message,Converter={StaticResource StringEmptyToVisibilityConverter}}">
  256. <TextBlock Style="{StaticResource HeartbeatTextBlockStyle}" FontSize="17" VerticalAlignment="Center" Foreground="#7F74FF"/>
  257. <TextBlock Text="{Binding DebugMessage.DateTime,StringFormat=HH:mm:ss}" FontSize="16" Margin="5,0" VerticalAlignment="Center" Foreground="#7F74FF"/>
  258. <TextBlock Text="{Binding DebugMessage.Message}" FontSize="16" Margin="5,0" VerticalAlignment="Center" Foreground="#7F74FF"/>
  259. </StackPanel>
  260. </Grid>
  261. </Border>
  262. <ctr:DamageRecordControl Grid.Column="1" Grid.RowSpan="2" Margin="25,0,0,0" Records="{Binding Records}" Title="近期记录"/>
  263. </Grid>
  264. </Page>