SettingDialog.xaml 24 KB

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