SettingDialog.xaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. <pu:WindowX x:Class="SWRIS.Pages.SettingDialog"
  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"
  7. mc:Ignorable="d" Foreground="#FFFFFF"
  8. xmlns:pu="https://opensource.panuon.com/wpf-ui"
  9. xmlns:cvt="clr-namespace:SWRIS.Converters" AllowsTransparency="True"
  10. xmlns:vm="clr-namespace:SWRIS.Models.ViewModel"
  11. MinHeight="750" Width="1100" WindowStyle="None"
  12. ResizeMode="NoResize" FontSize="18" Background="#141332"
  13. FontFamily="{StaticResource PuHuiTiRegular}"
  14. Title="系统设置" pu:WindowXCaption.Height="0"
  15. WindowStartupLocation="CenterScreen" IsEscEnabled="True" >
  16. <pu:WindowX.DataContext>
  17. <vm:SettingViewModel/>
  18. </pu:WindowX.DataContext>
  19. <pu:WindowX.Resources>
  20. <cvt:BooleanInverterConverter x:Key="InverterConverter"/>
  21. <cvt:PercentageConverter x:Key="PercentageConverter"/>
  22. <cvt:NullToVisibilityConverter x:Key="NullToVisibilityConverter"/>
  23. <cvt:ModuleTypeToVisibilityConverter x:Key="ModuleTypeToVisibilityConverter"/>
  24. <cvt:LimitSwitchNumberToBooleanConverter x:Key="LimitSwitchNumberToBooleanConverter"/>
  25. </pu:WindowX.Resources>
  26. <Border BorderThickness="2" BorderBrush="#3B3B7B" CornerRadius="10">
  27. <Grid Margin="20">
  28. <Grid.RowDefinitions>
  29. <RowDefinition Height="60"/>
  30. <RowDefinition Height="*"/>
  31. <RowDefinition Height="90"/>
  32. </Grid.RowDefinitions>
  33. <Grid.ColumnDefinitions>
  34. <ColumnDefinition Width="400"/>
  35. <ColumnDefinition Width="1.5"/>
  36. <ColumnDefinition Width="*"/>
  37. </Grid.ColumnDefinitions>
  38. <TextBlock Text="系统设置" Grid.Row="0" Grid.ColumnSpan="3" HorizontalAlignment="Center" FontSize="36" FontWeight="Bold"/>
  39. <StackPanel Orientation="Vertical" Grid.Row="1" Grid.Column="0" Margin="35,0">
  40. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  41. <Rectangle Height="2" Width="110" Stroke="#3B3B7B"/>
  42. <TextBlock Text="基本参数" Foreground="#615CDD" FontSize="24" Margin="15" FontWeight="Regular"/>
  43. <Rectangle Height="2" Width="110" Stroke="#3B3B7B"/>
  44. </StackPanel>
  45. <StackPanel Orientation="Vertical" HorizontalAlignment="Center">
  46. <StackPanel Orientation="Horizontal">
  47. <StackPanel Orientation="Vertical">
  48. <TextBlock Text="设备名称" Foreground="#7886B2" FontWeight="Regular"/>
  49. <TextBox Margin="0,10" Text="{Binding Crane}" Width="247"/>
  50. </StackPanel>
  51. </StackPanel>
  52. <StackPanel Orientation="Horizontal">
  53. <StackPanel Orientation="Vertical" Margin="0,0,27,0">
  54. <TextBlock Text="服务地址" Foreground="#7886B2" FontWeight="Regular"/>
  55. <TextBox Margin="0,10" Text="{Binding IpAddress}"/>
  56. </StackPanel>
  57. <StackPanel Orientation="Vertical">
  58. <TextBlock Text="端口号" Foreground="#7886B2" FontWeight="Regular"/>
  59. <TextBox Margin="0,10" Text="{Binding Port}" Width="70"/>
  60. </StackPanel>
  61. </StackPanel>
  62. <StackPanel Orientation="Horizontal">
  63. <StackPanel Orientation="Vertical" Margin="0,0,27,0">
  64. <TextBlock Text="数据清理时间" Foreground="#7886B2" FontWeight="Regular"/>
  65. <TextBox Margin="0,10" Text="{Binding CleanScheduledTime}" Width="150"/>
  66. </StackPanel>
  67. <StackPanel Orientation="Vertical">
  68. <TextBlock Text="存储时长" Foreground="#7886B2" FontWeight="Regular"/>
  69. <StackPanel Orientation="Horizontal" Margin="0,10" >
  70. <TextBox Text="{Binding DataSaveDays}" Width="70"/>
  71. <TextBlock VerticalAlignment="Center" Margin="5" Text="天"/>
  72. </StackPanel>
  73. </StackPanel>
  74. </StackPanel>
  75. <StackPanel Orientation="Horizontal">
  76. <StackPanel Orientation="Vertical" Margin="0,0,27,0">
  77. <TextBlock Text="语音报警级别" Foreground="#7886B2" FontWeight="Regular"/>
  78. <ComboBox Margin="0,10" Width="150" ItemsSource="{Binding RiskLevels}"
  79. SelectedValue="{Binding SoundRiskLevel}"
  80. DisplayMemberPath="Value" SelectedValuePath="Key"/>
  81. </StackPanel>
  82. <StackPanel Orientation="Vertical">
  83. <TextBlock Text="速度波动阈值" Foreground="#7886B2" FontWeight="Regular"/>
  84. <StackPanel Orientation="Horizontal" Margin="0,10">
  85. <TextBox Text="{Binding SpeedVariationThreshold,Converter={StaticResource PercentageConverter}}" Width="70"/>
  86. <TextBlock Text="%" Margin="5,0" VerticalAlignment="Center"/>
  87. </StackPanel>
  88. </StackPanel>
  89. </StackPanel>
  90. <StackPanel Orientation="Horizontal">
  91. <StackPanel Orientation="Vertical" Margin="0,0,22,0">
  92. <TextBlock Text="损伤容差范围" Foreground="#7886B2" FontWeight="Regular"/>
  93. <StackPanel Orientation="Horizontal" Margin="0,10">
  94. <TextBox Text="{Binding DamageExtent}" Width="125"/>
  95. <TextBlock Text="米" Margin="5,0" VerticalAlignment="Center"/>
  96. </StackPanel>
  97. </StackPanel>
  98. <StackPanel Orientation="Vertical">
  99. <TextBlock Text="损伤确认频次" Foreground="#7886B2" FontWeight="Regular"/>
  100. <StackPanel Orientation="Horizontal" Margin="0,10">
  101. <TextBox Text="{Binding AlarmValidCount}" Width="70"/>
  102. <TextBlock Text="次" Margin="5,0" VerticalAlignment="Center"/>
  103. </StackPanel>
  104. </StackPanel>
  105. </StackPanel>
  106. </StackPanel>
  107. </StackPanel>
  108. <Rectangle Grid.Row="1" Grid.Column="1">
  109. <Rectangle.Fill>
  110. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  111. <GradientStop Offset="0" Color="Transparent"/>
  112. <GradientStop Offset="0.5" Color="#3B3B7B"/>
  113. <GradientStop Offset="1" Color="Transparent"/>
  114. </LinearGradientBrush>
  115. </Rectangle.Fill>
  116. </Rectangle>
  117. <StackPanel Orientation="Vertical" Grid.Row="1" Grid.Column="2">
  118. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  119. <Rectangle Height="2" Width="250" Stroke="#3B3B7B"/>
  120. <TextBlock Text="标定" Foreground="#615CDD" FontSize="24" Margin="15" FontWeight="Regular"/>
  121. <Rectangle Height="2" Width="250" Stroke="#3B3B7B"/>
  122. </StackPanel>
  123. <StackPanel Orientation="Vertical" HorizontalAlignment="Center" DataContext="{Binding Calibration}">
  124. <StackPanel Orientation="Vertical">
  125. <TextBlock Text="类型" Foreground="#7886B2" FontWeight="Regular"/>
  126. <ComboBox Margin="0,10" Width="320" ItemsSource="{Binding ModuleTypes}"
  127. SelectedValue="{Binding ModuleType}"
  128. HorizontalAlignment="Left"
  129. DisplayMemberPath="Value" SelectedValuePath="Key"/>
  130. </StackPanel>
  131. <StackPanel Orientation="Vertical"
  132. Visibility="{Binding ModuleType,Converter={StaticResource ModuleTypeToVisibilityConverter},ConverterParameter=Tcp}">
  133. <StackPanel Orientation="Horizontal" DataContext="{Binding Tcp}">
  134. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  135. <TextBlock Text="设备地址" Foreground="#7886B2" FontWeight="Regular"/>
  136. <TextBox Margin="0,10" Text="{Binding IpAddress}" Width="150"/>
  137. </StackPanel>
  138. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  139. <TextBlock Text="端口号" Foreground="#7886B2" FontWeight="Regular"/>
  140. <TextBox Margin="0,10" Text="{Binding Port}" Width="75"/>
  141. </StackPanel>
  142. <StackPanel Orientation="Vertical">
  143. <TextBlock Text="站号" Foreground="#7886B2" FontWeight="Regular"/>
  144. <TextBox Margin="0,10" Text="{Binding Station}" Width="55"/>
  145. </StackPanel>
  146. </StackPanel>
  147. </StackPanel>
  148. <StackPanel Orientation="Vertical"
  149. Visibility="{Binding ModuleType,Converter={StaticResource ModuleTypeToVisibilityConverter},ConverterParameter=Serial}">
  150. <StackPanel Orientation="Vertical" DataContext="{Binding Serial}">
  151. <StackPanel Orientation="Horizontal">
  152. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  153. <TextBlock Text="串口名称" Foreground="#7886B2" FontWeight="Regular"/>
  154. <ComboBox ItemsSource="{Binding Path=SerialNames}" Margin="0,10" SelectedValue="{Binding PortName}" Width="150"/>
  155. </StackPanel>
  156. <StackPanel Orientation="Vertical">
  157. <TextBlock Text="波特率" Foreground="#7886B2" FontWeight="Regular"/>
  158. <ComboBox Margin="0,10" SelectedValue="{Binding BaudRate}"
  159. SelectedValuePath="Content" Width="150">
  160. <ComboBoxItem Content="1200"/>
  161. <ComboBoxItem Content="4800"/>
  162. <ComboBoxItem Content="9600"/>
  163. <ComboBoxItem Content="19200"/>
  164. <ComboBoxItem Content="38400"/>
  165. <ComboBoxItem Content="57600"/>
  166. <ComboBoxItem Content="115200"/>
  167. </ComboBox>
  168. </StackPanel>
  169. </StackPanel>
  170. <StackPanel Orientation="Horizontal">
  171. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  172. <TextBlock Text="数据位" Foreground="#7886B2" FontWeight="Regular"/>
  173. <ComboBox Margin="0,10" SelectedValue="{Binding DataBits}"
  174. SelectedValuePath="Content" Width="63">
  175. <ComboBoxItem Content="7"/>
  176. <ComboBoxItem Content="8"/>
  177. </ComboBox>
  178. </StackPanel>
  179. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  180. <TextBlock Text="校验位" Foreground="#7886B2" FontWeight="Regular"/>
  181. <ComboBox Margin="0,10" SelectedValue="{Binding Parity}"
  182. SelectedValuePath="Content" Width="100">
  183. <ComboBoxItem Content="None"/>
  184. <ComboBoxItem Content="Odd"/>
  185. <ComboBoxItem Content="Even"/>
  186. </ComboBox>
  187. </StackPanel>
  188. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  189. <TextBlock Text="停止位" Foreground="#7886B2" FontWeight="Regular"/>
  190. <ComboBox Margin="0,10" SelectedValue="{Binding StopBits}"
  191. SelectedValuePath="Content" Width="63">
  192. <ComboBoxItem Content="1"/>
  193. <ComboBoxItem Content="2"/>
  194. </ComboBox>
  195. </StackPanel>
  196. <StackPanel Orientation="Vertical">
  197. <TextBlock Text="站号" Foreground="#7886B2" FontWeight="Regular"/>
  198. <TextBox Margin="0,10" Text="{Binding Station}" Width="35"/>
  199. </StackPanel>
  200. </StackPanel>
  201. </StackPanel>
  202. </StackPanel>
  203. <Rectangle Width="600" Height="1.5" Margin="-200,10,-200,5">
  204. <Rectangle.Fill>
  205. <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
  206. <GradientStop Offset="0" Color="Transparent"/>
  207. <GradientStop Offset="0.5" Color="#3B3B7B"/>
  208. <GradientStop Offset="1" Color="Transparent"/>
  209. </LinearGradientBrush>
  210. </Rectangle.Fill>
  211. </Rectangle>
  212. <ItemsControl ItemsSource="{Binding Limits}" Margin="0,10">
  213. <ItemsControl.ItemsPanel>
  214. <ItemsPanelTemplate>
  215. <StackPanel Orientation="Vertical"/>
  216. </ItemsPanelTemplate>
  217. </ItemsControl.ItemsPanel>
  218. <ItemsControl.ItemTemplate>
  219. <DataTemplate>
  220. <StackPanel Orientation="Horizontal" >
  221. <CheckBox IsChecked="{Binding IsEnable}" ToolTip="是否启用" Margin="0,25,5,0" BorderThickness="1.6"
  222. pu:CheckBoxHelper.GlyphThickness="2"/>
  223. <StackPanel Orientation="Horizontal" IsEnabled="{Binding IsEnable}">
  224. <StackPanel Orientation="Vertical" Margin="0,0,20,0">
  225. <StackPanel Orientation="Horizontal">
  226. <TextBlock Text="限位" Margin="0,0,5,0" Foreground="#7886B2" FontWeight="Regular"/>
  227. <CheckBox Content="1" Padding="2,0" Margin="5,0"
  228. IsChecked="{Binding SwitchIndex, Converter={StaticResource LimitSwitchNumberToBooleanConverter},
  229. ConverterParameter=1}"/>
  230. <CheckBox Content="2" Padding="2,0"
  231. IsChecked="{Binding SwitchIndex, Converter={StaticResource LimitSwitchNumberToBooleanConverter},
  232. ConverterParameter=2}"/>
  233. </StackPanel>
  234. <TextBox Margin="0,10" Text="{Binding Name}" Width="120"/>
  235. </StackPanel>
  236. <StackPanel Orientation="Vertical" Margin="0,0,40,0">
  237. <TextBlock Text="地址" Foreground="#7886B2" FontWeight="Regular"/>
  238. <Grid Margin="0,10">
  239. <TextBox Text="{Binding Address}" Width="80" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
  240. <CheckBox Content="反" ToolTip="取反" IsChecked="{Binding IsReverse}" HorizontalAlignment="Right"
  241. VerticalAlignment="Top"
  242. Foreground="LightGreen" BorderBrush="LightGreen"
  243. Margin="0,0,-30,0" Width="35" Height="22" FontSize="15" Padding="1"
  244. pu:CheckBoxHelper.CheckedGlyphBrush="OrangeRed"
  245. pu:CheckBoxHelper.CheckedForeground="OrangeRed"
  246. pu:CheckBoxHelper.CheckedBorderBrush="OrangeRed">
  247. <CheckBox.LayoutTransform>
  248. <ScaleTransform ScaleX="0.8" ScaleY="0.8"/>
  249. </CheckBox.LayoutTransform>
  250. </CheckBox>
  251. </Grid>
  252. </StackPanel>
  253. <StackPanel Orientation="Vertical">
  254. <TextBlock Text="高度" Foreground="#7886B2" FontWeight="Regular"/>
  255. <StackPanel Orientation="Horizontal">
  256. <TextBox Margin="0,10" Text="{Binding Position}" Width="65"/>
  257. <TextBlock Text="米" Margin="5,0" VerticalAlignment="Center"/>
  258. </StackPanel>
  259. </StackPanel>
  260. <ItemsControl ItemsSource="{Binding RelatedRopes}" Margin="10,0,0,0">
  261. <ItemsControl.ItemsPanel>
  262. <ItemsPanelTemplate>
  263. <StackPanel Orientation="Vertical" VerticalAlignment="Bottom" Margin="0,5"/>
  264. </ItemsPanelTemplate>
  265. </ItemsControl.ItemsPanel>
  266. <ItemsControl.ItemTemplate>
  267. <DataTemplate>
  268. <CheckBox Content="{Binding RopeName}" Tag="{Binding RopeNumber}" IsChecked="{Binding IsSelected}"/>
  269. </DataTemplate>
  270. </ItemsControl.ItemTemplate>
  271. </ItemsControl>
  272. </StackPanel>
  273. </StackPanel>
  274. </DataTemplate>
  275. </ItemsControl.ItemTemplate>
  276. </ItemsControl>
  277. </StackPanel>
  278. </StackPanel>
  279. <Grid Grid.Row="4" Grid.ColumnSpan="3">
  280. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  281. <Button Content="取消" Width="100" Height="50" Margin="10,0" IsCancel="True" Style="{StaticResource CancelButton}"/>
  282. <Button Content="保存" Width="150" Height="50" Margin="20,0" IsDefault="True" Click="Save_Click"/>
  283. </StackPanel>
  284. <CheckBox Content="保存后重新启动程序" Foreground="Orange" BorderBrush="Orange"
  285. pu:CheckBoxHelper.CheckedGlyphBrush="Orange" Margin="0,10,0,0" IsChecked="{Binding IsAutoStart}"
  286. HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
  287. </Grid>
  288. </Grid>
  289. </Border>
  290. </pu:WindowX>