AddPlc.xaml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <UserControl x:Class="TeamAAS_VP.Views.Setting.AddPlc"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:prism="http://prismlibrary.com/"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  8. xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  9. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  10. xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
  11. xmlns:convert="clr-namespace:TeamAAS_VP.ValueConverter"
  12. xmlns:valRules="clr-namespace:TeamAAS_VP.Identity"
  13. xmlns:validationRule="clr-namespace:TeamAAS_VP.ValidationRules"
  14. xmlns:ext="clr-namespace:TeamAAS_VP.Extension"
  15. xmlns:lex="http://wpflocalizeextension.codeplex.com"
  16. xmlns:vm="clr-namespace:TeamAAS_VP.ViewModels.Setting"
  17. lex:LocalizeDictionary.DesignCulture="zh-CN"
  18. lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
  19. lex:ResxLocalizationProvider.DefaultDictionary="Lang"
  20. mc:Ignorable="d"
  21. d:Background="White"
  22. d:DataContext="{d:DesignInstance Type=vm:AddPlcViewModel}"
  23. prism:ViewModelLocator.AutoWireViewModel="True"
  24. FontFamily="{DynamicResource DefaultFont}">
  25. <prism:Dialog.WindowStyle>
  26. <Style TargetType="Window">
  27. <Setter Property="prism:Dialog.WindowStartupLocation"
  28. Value="CenterScreen" />
  29. <!--<Setter Property="WindowChrome.WindowChrome">
  30. <Setter.Value>
  31. <WindowChrome CaptionHeight="0"
  32. ResizeBorderThickness="1" />
  33. </Setter.Value>
  34. </Setter>-->
  35. <Setter Property="WindowStyle"
  36. Value="None" />
  37. <Setter Property="AllowDrop"
  38. Value="True" />
  39. <Setter Property="BorderThickness"
  40. Value="0" />
  41. <Setter Property="ShowInTaskbar"
  42. Value="False" />
  43. <Setter Property="SizeToContent"
  44. Value="WidthAndHeight" />
  45. <Setter Property="WindowState"
  46. Value="Normal" />
  47. <Setter Property="Topmost"
  48. Value="True" />
  49. </Style>
  50. </prism:Dialog.WindowStyle>
  51. <Grid HorizontalAlignment="Center">
  52. <Grid.RowDefinitions>
  53. <RowDefinition Height="*" />
  54. <RowDefinition Height="50" />
  55. </Grid.RowDefinitions>
  56. <!--参数详情-->
  57. <Grid Margin="20,20">
  58. <Grid.RowDefinitions>
  59. <RowDefinition MinHeight="50"/>
  60. <RowDefinition MinHeight="50"/>
  61. <RowDefinition MinHeight="50"/>
  62. <RowDefinition MinHeight="50" />
  63. </Grid.RowDefinitions>
  64. <Grid.ColumnDefinitions>
  65. <ColumnDefinition Width="50*" />
  66. <ColumnDefinition Width="50*" />
  67. </Grid.ColumnDefinitions>
  68. <!--id-->
  69. <TextBlock Text="Id: "
  70. Grid.Row="0"
  71. Grid.Column="0"
  72. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  73. HorizontalAlignment="Right"
  74. VerticalAlignment="Center" />
  75. <TextBlock x:Name="txt_Id"
  76. Text="{Binding SelectedPlc.Id,Mode=TwoWay}"
  77. Grid.Row="0"
  78. Grid.Column="1"
  79. Margin="10,0"
  80. HorizontalAlignment="Left"
  81. VerticalAlignment="Center" />
  82. <!--名称-->
  83. <TextBlock Text="{lex:Loc 名称,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  84. Grid.Row="1"
  85. Grid.Column="0"
  86. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  87. HorizontalAlignment="Right"
  88. VerticalAlignment="Center" />
  89. <TextBox x:Name="txt_Name"
  90. Grid.Row="1"
  91. Grid.Column="1"
  92. Margin="10,0"
  93. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  94. MinWidth="80"
  95. TextAlignment="Center"
  96. HorizontalAlignment="Left"
  97. VerticalAlignment="Center">
  98. <TextBox.Text>
  99. <Binding Path="SelectedPlc.Name"
  100. Mode="TwoWay">
  101. <Binding.ValidationRules>
  102. <valRules:NameValidationRule />
  103. </Binding.ValidationRules>
  104. </Binding>
  105. </TextBox.Text>
  106. </TextBox>
  107. <!--通讯方式-->
  108. <TextBlock Text="{lex:Loc 通讯方式,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
  109. Grid.Row="2"
  110. Grid.Column="0"
  111. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  112. HorizontalAlignment="Right"
  113. VerticalAlignment="Center" />
  114. <ComboBox SelectedItem="{Binding SelectedPlc.CommunicationType,Mode=TwoWay}"
  115. Grid.Row="2"
  116. Grid.Column="1"
  117. Margin="10,0"
  118. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  119. MinWidth="80"
  120. HorizontalContentAlignment="Center"
  121. ItemsSource="{ext:EnumBindingSource EnumType=enums:CommunicationType}"
  122. HorizontalAlignment="Left"
  123. VerticalAlignment="Center" />
  124. <!--Endpoint Url地址-->
  125. <TextBlock Text="Endpoint Url: "
  126. Grid.Row="3"
  127. Grid.Column="0"
  128. Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
  129. HorizontalAlignment="Right"
  130. VerticalAlignment="Center" />
  131. <TextBox Grid.Row="3"
  132. Grid.Column="1"
  133. Margin="10,0"
  134. Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
  135. MinWidth="80"
  136. TextAlignment="Center"
  137. HorizontalAlignment="Left"
  138. VerticalAlignment="Center"
  139. Text="{Binding SelectedPlc.EndpointUrl}" />
  140. </Grid>
  141. <StackPanel Grid.Row="1"
  142. Orientation="Horizontal"
  143. HorizontalAlignment="Right">
  144. <Button Height="30"
  145. materialDesign:ButtonAssist.CornerRadius="10"
  146. ToolTip="{lex:Loc 确定}"
  147. Command="{Binding ConfirmCommand}">
  148. <TextBlock Text="{lex:Loc 确定}" />
  149. <Button.Style>
  150. <Style TargetType="Button"
  151. BasedOn="{StaticResource MaterialDesignRaisedButton}">
  152. <Style.Triggers>
  153. <MultiDataTrigger>
  154. <MultiDataTrigger.Conditions>
  155. <!-- 当且仅当IP地址合规且其他条件满足时,启用按钮 -->
  156. <Condition Binding="{Binding ElementName=txt_Name, Path=(Validation.HasError)}"
  157. Value="False" />
  158. <Condition Binding="{Binding ElementName=txt_Port, Path=(Validation.HasError)}"
  159. Value="False" />
  160. </MultiDataTrigger.Conditions>
  161. <Setter Property="IsEnabled"
  162. Value="True" />
  163. </MultiDataTrigger>
  164. </Style.Triggers>
  165. </Style>
  166. </Button.Style>
  167. </Button>
  168. <Button Height="30"
  169. Margin="20,0"
  170. materialDesign:ButtonAssist.CornerRadius="10"
  171. Style="{StaticResource MaterialDesignRaisedButton}"
  172. ToolTip="{lex:Loc 取消}"
  173. Command="{Binding CancelCommand}">
  174. <TextBlock Text="{lex:Loc 取消}" />
  175. </Button>
  176. </StackPanel>
  177. </Grid>
  178. </UserControl>