SimulatorPlcFloatIOView.xaml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <UserControl
  2. x:Class="FurnaceSimulator.Views.SimulatorPlcFloatIOView"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"
  6. xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"
  7. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. xmlns:toolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
  10. xmlns:views="clr-namespace:FurnaceSimulator.Views"
  11. d:DesignHeight="450"
  12. d:DesignWidth="1900"
  13. mc:Ignorable="d">
  14. <UserControl.Resources>
  15. <views:BoolBackgroundConverter x:Key="BoolBackgroundConverter"/>
  16. <SolidColorBrush x:Key="DataGrid_Cell_BD" Color="Gray"/>
  17. <Style x:Key="Lamp-Button" TargetType="{x:Type views:IoButton}">
  18. <Setter Property="Width" Value="16"/>
  19. <Setter Property="Height" Value="16"/>
  20. <Setter Property="Template">
  21. <Setter.Value>
  22. <ControlTemplate TargetType="{x:Type views:IoButton}">
  23. <Grid>
  24. <ContentPresenter
  25. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  26. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
  27. Content=""
  28. RecognizesAccessKey="True"
  29. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  30. <Ellipse
  31. Fill="DarkGray"
  32. Stroke="Gray"
  33. StrokeThickness="2"/>
  34. <Ellipse
  35. x:Name="Highlight"
  36. Fill="Lime"
  37. Stroke="Gray"
  38. StrokeThickness="2"/>
  39. </Grid>
  40. <ControlTemplate.Triggers>
  41. <Trigger Property="IsChecked" Value="True">
  42. <Setter TargetName="Highlight" Property="Visibility" Value="Visible"/>
  43. </Trigger>
  44. <Trigger Property="IsChecked" Value="False">
  45. <Setter TargetName="Highlight" Property="Visibility" Value="Collapsed"/>
  46. </Trigger>
  47. <Trigger Property="IsMouseOver" Value="False">
  48. <Setter TargetName="Highlight" Property="Opacity" Value="1"/>
  49. </Trigger>
  50. </ControlTemplate.Triggers>
  51. </ControlTemplate>
  52. </Setter.Value>
  53. </Setter>
  54. </Style>
  55. </UserControl.Resources>
  56. <Grid>
  57. <Grid.ColumnDefinitions>
  58. <ColumnDefinition Width="*"/>
  59. <ColumnDefinition Width="*"/>
  60. <ColumnDefinition Width="*"/>
  61. <ColumnDefinition Width="*"/>
  62. </Grid.ColumnDefinitions>
  63. <TabControl>
  64. <TabItem Header="DI">
  65. <ListView
  66. Name="DIListView"
  67. AlternationCount="2"
  68. FontSize="12"
  69. ItemsSource="{Binding Path=DIs}">
  70. <ListView.View>
  71. <GridView>
  72. <GridViewColumn
  73. Width="Auto"
  74. DisplayMemberBinding="{Binding Path=Index}"
  75. Header="Index"/>
  76. <GridViewColumn
  77. Width="Auto"
  78. DisplayMemberBinding="{Binding Path=Name}"
  79. Header="Name"/>
  80. <GridViewColumn
  81. Width="70"
  82. DisplayMemberBinding="{Binding Path=Address}"
  83. Header="Address"/>
  84. <GridViewColumn Width="50" Header="Status">
  85. <GridViewColumn.CellTemplate>
  86. <DataTemplate>
  87. <Grid Width="35">
  88. <views:IoButton
  89. HorizontalAlignment="Center"
  90. IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  91. ON="{Binding Path=BoolValue}"
  92. Style="{StaticResource Lamp-Button}"/>
  93. </Grid>
  94. </DataTemplate>
  95. </GridViewColumn.CellTemplate>
  96. </GridViewColumn>
  97. <GridViewColumn Width="50" Header="Hold">
  98. <GridViewColumn.CellTemplate>
  99. <DataTemplate>
  100. <CheckBox
  101. x:Name="ckHold"
  102. Width="25"
  103. Height="25"
  104. Margin="0,10,0,0"
  105. IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
  106. </DataTemplate>
  107. </GridViewColumn.CellTemplate>
  108. </GridViewColumn>
  109. </GridView>
  110. </ListView.View>
  111. </ListView>
  112. </TabItem>
  113. </TabControl>
  114. <TabControl Grid.Column="1">
  115. <TabItem Header="DO">
  116. <ListView
  117. Name="DOListView"
  118. Grid.Column="3"
  119. AlternationCount="2"
  120. FontSize="12"
  121. ItemsSource="{Binding Path=DOs}">
  122. <ListView.View>
  123. <GridView>
  124. <GridViewColumn
  125. Width="Auto"
  126. DisplayMemberBinding="{Binding Path=Index}"
  127. Header="Index"/>
  128. <GridViewColumn
  129. Width="Auto"
  130. DisplayMemberBinding="{Binding Path=Name}"
  131. Header="Name"/>
  132. <GridViewColumn
  133. Width="70"
  134. DisplayMemberBinding="{Binding Path=Address}"
  135. Header="Address"/>
  136. <GridViewColumn Width="50" Header="Status">
  137. <GridViewColumn.CellTemplate>
  138. <DataTemplate>
  139. <Grid Width="35">
  140. <views:IoButton
  141. Height="35"
  142. HorizontalAlignment="Center"
  143. IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  144. ON="{Binding Path=BoolValue}"
  145. Style="{StaticResource Lamp-Button}"/>
  146. </Grid>
  147. </DataTemplate>
  148. </GridViewColumn.CellTemplate>
  149. </GridViewColumn>
  150. <!--<GridViewColumn Width="50" Header="Hold">
  151. <GridViewColumn.CellTemplate>
  152. <DataTemplate>
  153. <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" Margin="0,10,0,0"></CheckBox>
  154. </DataTemplate>
  155. </GridViewColumn.CellTemplate>
  156. </GridViewColumn>-->
  157. </GridView>
  158. </ListView.View>
  159. </ListView>
  160. </TabItem>
  161. </TabControl>
  162. <TabControl Grid.Column="2">
  163. <TabItem Header="AI">
  164. <ListView
  165. Name="AIListView"
  166. AlternationCount="2"
  167. FontSize="12"
  168. ItemsSource="{Binding Path=AIs}">
  169. <ListView.View>
  170. <GridView>
  171. <GridViewColumn
  172. Width="Auto"
  173. DisplayMemberBinding="{Binding Path=Index}"
  174. Header="Index"/>
  175. <GridViewColumn
  176. Width="Auto"
  177. DisplayMemberBinding="{Binding Path=Name}"
  178. Header="Name"/>
  179. <GridViewColumn
  180. Width="70"
  181. DisplayMemberBinding="{Binding Path=Address}"
  182. Header="Address"/>
  183. <GridViewColumn Width="120" Header="Value">
  184. <GridViewColumn.CellTemplate>
  185. <DataTemplate>
  186. <TextBox
  187. Width="100"
  188. Height="20"
  189. Margin="0"
  190. Padding="0"
  191. Text="{Binding Path=FloatValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
  192. </DataTemplate>
  193. </GridViewColumn.CellTemplate>
  194. </GridViewColumn>
  195. <GridViewColumn Width="50" Header="Hold">
  196. <GridViewColumn.CellTemplate>
  197. <DataTemplate>
  198. <CheckBox
  199. x:Name="ckHold"
  200. Width="25"
  201. Height="25"
  202. Margin="0,10,0,0"
  203. IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
  204. </DataTemplate>
  205. </GridViewColumn.CellTemplate>
  206. </GridViewColumn>
  207. </GridView>
  208. </ListView.View>
  209. </ListView>
  210. </TabItem>
  211. </TabControl>
  212. <TabControl Grid.Column="3">
  213. <TabItem Header="AO">
  214. <ListView
  215. Name="AOListView"
  216. Grid.Column="1"
  217. AlternationCount="2"
  218. FontSize="12"
  219. ItemsSource="{Binding Path=AOs}">
  220. <ListView.View>
  221. <GridView>
  222. <GridViewColumn
  223. Width="Auto"
  224. DisplayMemberBinding="{Binding Path=Index}"
  225. Header="Index"/>
  226. <GridViewColumn
  227. Width="Auto"
  228. DisplayMemberBinding="{Binding Path=Name}"
  229. Header="Name"/>
  230. <GridViewColumn
  231. Width="70"
  232. DisplayMemberBinding="{Binding Path=Address}"
  233. Header="Address"/>
  234. <GridViewColumn Width="120" Header="Value">
  235. <GridViewColumn.CellTemplate>
  236. <DataTemplate>
  237. <TextBox
  238. Width="100"
  239. Height="20"
  240. Margin="0"
  241. Padding="0"
  242. Text="{Binding Path=FloatValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
  243. </DataTemplate>
  244. </GridViewColumn.CellTemplate>
  245. </GridViewColumn>
  246. <!--<GridViewColumn Width="50" Header="Hold">
  247. <GridViewColumn.CellTemplate>
  248. <DataTemplate>
  249. <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" Margin="0,10,0,0"></CheckBox>
  250. </DataTemplate>
  251. </GridViewColumn.CellTemplate>
  252. </GridViewColumn>-->
  253. </GridView>
  254. </ListView.View>
  255. </ListView>
  256. </TabItem>
  257. </TabControl>
  258. </Grid>
  259. </UserControl>