RopeEquipmentControl.xaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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="65"/>
  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"
  38. Fill="{Binding State,Converter={StaticResource LimitStateToColorConverter}}"/>
  39. <TextBlock Text="{Binding Name}"
  40. Foreground="{Binding State,Converter={StaticResource LimitStateToColorConverter}}"
  41. FontSize="14" FontWeight="Regular" VerticalAlignment="Center"/>
  42. </StackPanel>
  43. </Border>
  44. </DataTemplate>
  45. </ItemsControl.ItemTemplate>
  46. </ItemsControl>
  47. <TextBlock Text="检测位置" Foreground="#7886B2" FontSize="{Binding PanelNameFontSize,ElementName=Root}"
  48. FontWeight="Regular" HorizontalAlignment="Right" Visibility="Visible"/>
  49. <TextBlock FontSize="{Binding PanelValueFontSize,ElementName=Root}" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  50. Margin="-30,-3,0,0" HorizontalAlignment="Right" Visibility="Visible">
  51. <Run Text="{Binding AbsolutePosition,StringFormat=#0.00}"/>
  52. <Run Text="m"/>
  53. </TextBlock>
  54. <TextBlock Text="检测速度" Foreground="#7886B2" FontSize="{Binding PanelNameFontSize,ElementName=Root}"
  55. FontWeight="Regular" HorizontalAlignment="Right"/>
  56. <TextBlock FontSize="{Binding PanelValueFontSize,ElementName=Root}" FontWeight="Bold" FontFamily="{StaticResource PuHuiTiBold}"
  57. Margin="-30,-3,0,0" HorizontalAlignment="Right">
  58. <Run Text="{Binding Speed,StringFormat=#0.00}"/>
  59. <Run Text="m/min"/>
  60. <TextBlock.Style>
  61. <Style TargetType="TextBlock">
  62. <Style.Triggers>
  63. <DataTrigger Binding="{Binding IsSpeedStable}" Value="False">
  64. <Setter Property="Foreground" >
  65. <Setter.Value>
  66. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  67. <GradientStop Color="#FFFFFF" Offset="0.45"/>
  68. <GradientStop Color="#FF6C00" Offset="1"/>
  69. </LinearGradientBrush>
  70. </Setter.Value>
  71. </Setter>
  72. </DataTrigger>
  73. </Style.Triggers>
  74. </Style>
  75. </TextBlock.Style>
  76. </TextBlock>
  77. </StackPanel>
  78. <Canvas Grid.Column="1" x:Name="RopeCanvas" >
  79. <Rectangle Width="26" Height="{Binding RopeHeight,ElementName=Root}" Canvas.Left="30">
  80. <Rectangle.Fill>
  81. <ImageBrush x:Name="RopeRectangle" ImageSource="{Binding RopeImageSource,ElementName=Root}"
  82. TileMode="FlipX" Viewport="0,0,26,22"
  83. ViewportUnits="Absolute"/>
  84. </Rectangle.Fill>
  85. </Rectangle>
  86. <Canvas Canvas.Top="{Binding EquipmentTopPosition,ElementName=Root}">
  87. <Image Width="55" Canvas.Left="16" Canvas.Top="12">
  88. <Image.Style>
  89. <Style TargetType="Image">
  90. <Style.Triggers>
  91. <DataTrigger Binding="{Binding IsAlerting}" Value="False">
  92. <Setter Property="Source" Value="/Resources/blue_bg.png"/>
  93. </DataTrigger>
  94. <DataTrigger Binding="{Binding IsAlerting}" Value="True">
  95. <Setter Property="Source" Value="/Resources/red_bg.png"/>
  96. </DataTrigger>
  97. </Style.Triggers>
  98. </Style>
  99. </Image.Style>
  100. </Image>
  101. <Image Source="{Binding EquipmentImageSource,ElementName=Root}" Width="70" Canvas.Top="70" Canvas.Left="8"/>
  102. </Canvas>
  103. </Canvas>
  104. </Grid>
  105. </UserControl>