| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459 |
- <UserControl x:Class="TeamAAS_VP.Views.Setting.AddFeeder"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:prism="http://prismlibrary.com/"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
- xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:enums="clr-namespace:TeamAAS_VP.Enums"
- xmlns:enums1="clr-namespace:Team.FFFeederService;assembly=Team.FFFeederService"
- xmlns:convert="clr-namespace:TeamAAS_VP.ValueConverter"
- xmlns:valRules="clr-namespace:TeamAAS_VP.Identity"
- xmlns:validationRule="clr-namespace:TeamAAS_VP.ValidationRules"
- xmlns:ext="clr-namespace:TeamAAS_VP.Extension"
- xmlns:lex="http://wpflocalizeextension.codeplex.com"
- lex:LocalizeDictionary.DesignCulture="zh-CN"
- lex:ResxLocalizationProvider.DefaultAssembly="TeamAAS-VP"
- lex:ResxLocalizationProvider.DefaultDictionary="Lang"
- mc:Ignorable="d"
- d:Background="White"
- prism:ViewModelLocator.AutoWireViewModel="True"
- FontFamily="{DynamicResource DefaultFont}">
- <prism:Dialog.WindowStyle>
- <Style TargetType="Window">
- <Setter Property="prism:Dialog.WindowStartupLocation"
- Value="CenterScreen" />
- <!--<Setter Property="WindowChrome.WindowChrome">
- <Setter.Value>
- <WindowChrome CaptionHeight="0"
- ResizeBorderThickness="1" />
- </Setter.Value>
- </Setter>-->
- <Setter Property="WindowStyle"
- Value="None" />
- <Setter Property="AllowDrop"
- Value="True" />
- <Setter Property="BorderThickness"
- Value="0" />
- <Setter Property="ShowInTaskbar"
- Value="False" />
- <Setter Property="SizeToContent"
- Value="WidthAndHeight" />
- <Setter Property="WindowState"
- Value="Normal" />
- <Setter Property="Topmost"
- Value="True" />
- </Style>
- </prism:Dialog.WindowStyle>
- <UserControl.Resources>
- <convert:InvertBooleanToVisibilityConverter x:Key="InvertBooleanToVisibilityConverter" />
-
- </UserControl.Resources>
- <materialDesign:Transitioner AutoApplyTransitionOrigins="True"
- d:SelectedIndex="1"
- SelectedIndex="{Binding SelectedIndex}">
- <!--自动扫描Feeder-->
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="auto" />
- <RowDefinition Height="*" />
- <RowDefinition Height="auto" />
- </Grid.RowDefinitions>
- <StackPanel Orientation="Vertical">
- <TextBlock Text="{lex:Loc 自动识别Feeder}"
- HorizontalAlignment="Center"
- FontSize="{DynamicResource Font.Size.Title3}" />
- <TextBlock FontSize="{DynamicResource Font.Size.Body3}">
- <TextBlock.Text>
- <MultiBinding StringFormat="{}{0}{1}">
- <lex:BLoc Key="Feeder数量" />
- <Binding Path="Feeders.Count" />
- </MultiBinding>
- </TextBlock.Text>
- </TextBlock>
- </StackPanel>
- <ItemsControl Grid.Row="1"
- IsEnabled="{Binding IsInit}"
- ItemsSource="{Binding Feeders}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <WrapPanel Orientation="Horizontal" />
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border Margin="10"
- CornerRadius="15"
- Background="LightGray">
- <StackPanel Grid.Column="1"
- Orientation="Vertical">
- <StackPanel Orientation="Horizontal"
- Margin="5,0">
- <TextBlock Text="{lex:Loc 型号,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Margin="0,5,0,0" />
- <TextBlock Text="{Binding FeederType}"
- VerticalAlignment="Bottom"
- Margin="10,0,0,0" />
- </StackPanel>
- <Grid Margin="5">
- <Grid.RowDefinitions>
- <RowDefinition Height="auto" />
- <RowDefinition Height="auto" />
- <RowDefinition Height="auto" />
- <RowDefinition Height="auto" />
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="auto" />
- <ColumnDefinition Width="auto" />
- <ColumnDefinition Width="auto" />
- <ColumnDefinition Width="auto" />
- </Grid.ColumnDefinitions>
- <TextBlock Text="{lex:Loc 固件版本,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="0"
- Grid.Column="0"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBlock Text="{Binding Version}"
- Grid.Row="0"
- Grid.Column="1"
- VerticalAlignment="Center" />
- <TextBlock Text="{lex:Loc MAC地址,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="0"
- Grid.Column="2"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBlock Text="{Binding MAC}"
- Grid.Row="0"
- Grid.Column="3"
- VerticalAlignment="Center" />
- <TextBlock Text="{lex:Loc 子网掩码,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="1"
- Grid.Column="0"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBlock Text="{Binding Subnet}"
- Grid.Row="1"
- Grid.Column="1"
- VerticalAlignment="Center" />
- <TextBlock Text="{lex:Loc 网关,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="1"
- Grid.Column="2"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBlock Text="{Binding Gateway}"
- Grid.Row="1"
- Grid.Column="3"
- VerticalAlignment="Center" />
- <TextBlock Text="{lex:Loc IP地址,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="2"
- Grid.Column="0"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBox Grid.Row="2"
- Grid.Column="1"
- VerticalAlignment="Center">
- <TextBox.Text>
- <Binding Mode="TwoWay"
- Path="IP"
- UpdateSourceTrigger="PropertyChanged">
- <Binding.ValidationRules>
- <validationRule:IPAddressValidationRule />
- </Binding.ValidationRules>
- </Binding>
- </TextBox.Text>
- <Validation.ErrorTemplate>
- <ControlTemplate>
- <StackPanel Orientation="Horizontal">
- <AdornedElementPlaceholder Name="customAdorner" />
- <TextBox Margin="10,0,0,0"
- VerticalContentAlignment="Center"
- BorderBrush="Red"
- Foreground="Red"
- Text="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}" />
- </StackPanel>
- </ControlTemplate>
- </Validation.ErrorTemplate>
- </TextBox>
- <TextBlock Text="{lex:Loc 端口,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="2"
- Grid.Column="2"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBox Grid.Row="2"
- Grid.Column="3"
- VerticalAlignment="Center">
- <TextBox.Text>
- <Binding Mode="TwoWay"
- Path="Port"
- UpdateSourceTrigger="PropertyChanged">
- <Binding.ValidationRules>
- <validationRule:TCPPortValidationRule />
- </Binding.ValidationRules>
- </Binding>
- </TextBox.Text>
- <Validation.ErrorTemplate>
- <ControlTemplate>
- <StackPanel Orientation="Horizontal">
- <AdornedElementPlaceholder Name="customAdorner" />
- <TextBox Margin="10,0,0,0"
- VerticalContentAlignment="Center"
- BorderBrush="Red"
- Foreground="Red"
- Text="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}" />
- </StackPanel>
- </ControlTemplate>
- </Validation.ErrorTemplate>
- </TextBox>
- <TextBlock Grid.Row="3"
- Grid.ColumnSpan="3"
- VerticalAlignment="Center"
- Text="{lex:Loc FeederIP可到达,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Foreground="Green"
- Visibility="{Binding IsAccessible,Converter={StaticResource BooleanToVisibilityConverter},Mode=TwoWay}" />
- <TextBlock Grid.Row="3"
- Grid.ColumnSpan="3"
- VerticalAlignment="Center"
- Foreground="Red"
- Visibility="{Binding IsAccessible,Converter={StaticResource InvertBooleanToVisibilityConverter},Mode=TwoWay}">
- <TextBlock.Text>
- <MultiBinding StringFormat="{}{0}{1}">
- <lex:BLoc Key="FeederIP不可到达" />
- <Binding Path="Network.IPv4Address" />
- </MultiBinding>
- </TextBlock.Text>
- </TextBlock>
- <Button Content="{lex:Loc 修改IP}"
- Grid.Row="3"
- Grid.Column="3"
- Margin="0,3"
- Command="{Binding DataContext.SetFeedetIPCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"
- CommandParameter="{Binding}" />
- </Grid>
- <Button Content="{lex:Loc 选中Feeder}"
- HorizontalAlignment="Right"
- Margin="5"
- Command="{Binding DataContext.SelectFeedetCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"
- CommandParameter="{Binding}" />
- </StackPanel>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- <StackPanel Grid.Row="2"
- IsEnabled="{Binding IsInit}"
- Orientation="Vertical">
- <Border BorderBrush="Gray"
- BorderThickness="1"
- Height="1"
- Margin="2" />
- <StackPanel Orientation="Horizontal">
- <Button Content="{lex:Loc 手动添加}"
- Margin="10"
- Command="{Binding ManualAddFeederCommand}" />
- </StackPanel>
- </StackPanel>
- <ProgressBar Grid.RowSpan="2"
- IsIndeterminate="True"
- Width="50"
- Height="50"
- Visibility="{Binding IsShowProgressBar}"
- Style="{StaticResource MaterialDesignCircularProgressBar}"
- Value="0" />
- </Grid>
- <!--手动添加Feeder-->
- <Grid HorizontalAlignment="Center">
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- <RowDefinition Height="50" />
- </Grid.RowDefinitions>
- <!--参数详情-->
- <Grid Height="300"
- Margin="20,20">
- <Grid.RowDefinitions>
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="50*" />
- <ColumnDefinition Width="50*" />
- </Grid.ColumnDefinitions>
- <!--id-->
- <TextBlock Text="Id: "
- Grid.Row="0"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBlock x:Name="txt_Id"
- Text="{Binding Feeder.Id,Mode=TwoWay}"
- Grid.Row="0"
- Grid.Column="1"
- Margin="10,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Center" />
- <!--名称-->
- <TextBlock Text="{lex:Loc 名称,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="1"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBox x:Name="txt_Name"
- Grid.Row="1"
- Grid.Column="1"
- Margin="10,0"
- Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
- MinWidth="80"
- TextAlignment="Center"
- HorizontalAlignment="Left"
- VerticalAlignment="Center">
- <TextBox.Text>
- <Binding Path="Feeder.FeederName"
- Mode="TwoWay">
- <Binding.ValidationRules>
- <valRules:NameValidationRule />
- </Binding.ValidationRules>
- </Binding>
- </TextBox.Text>
- </TextBox>
- <!--机器人品牌-->
- <TextBlock Text="{lex:Loc 品牌,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="2"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <ComboBox Text="{Binding Feeder.FeederBrand,Mode=TwoWay}"
- Grid.Row="2"
- Grid.Column="1"
- Margin="10,0"
- Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
- MinWidth="80"
- HorizontalContentAlignment="Center"
- ItemsSource="{ext:EnumBindingSource EnumType=enums1:FeederBrand}"
- HorizontalAlignment="Left"
- VerticalAlignment="Center" />
- <!--通讯方式-->
- <TextBlock Text="{lex:Loc 通讯方式,Converter={StaticResource StringFormatConverter},ConverterParameter='{}{0}: '}"
- Grid.Row="3"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <ComboBox Text="{Binding Feeder.ConnectType,Mode=TwoWay}"
- Grid.Row="3"
- Grid.Column="1"
- Margin="10,0"
- Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
- MinWidth="80"
- HorizontalContentAlignment="Center"
- ItemsSource="{ext:EnumBindingSource EnumType=enums:TCPConnectType}"
- HorizontalAlignment="Left"
- VerticalAlignment="Center" />
- <!--IP地址-->
- <TextBlock Text="IP: "
- Grid.Row="4"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBox x:Name="txt_IP"
- Grid.Row="4"
- Grid.Column="1"
- Margin="10,0"
- Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
- MinWidth="80"
- TextAlignment="Center"
- HorizontalAlignment="Left"
- VerticalAlignment="Center">
- <TextBox.Text>
- <Binding Path="Feeder.IP"
- Mode="TwoWay">
- <Binding.ValidationRules>
- <valRules:IPValidationRule />
- </Binding.ValidationRules>
- </Binding>
- </TextBox.Text>
- </TextBox>
- <!--端口号-->
- <TextBlock Text="Port: "
- Grid.Row="5"
- Grid.Column="0"
- Style="{StaticResource MaterialDesignSubtitle1TextBlock}"
- HorizontalAlignment="Right"
- VerticalAlignment="Center" />
- <TextBox x:Name="txt_Port"
- Grid.Row="5"
- Grid.Column="1"
- Margin="10,0"
- Width="{Binding ElementName=txt_Id,Path=ActualWidth}"
- MinWidth="80"
- TextAlignment="Center"
- HorizontalAlignment="Left"
- VerticalAlignment="Center">
- <TextBox.Text>
- <Binding Path="Feeder.Port"
- Mode="TwoWay">
- <Binding.ValidationRules>
- <valRules:PortValidationRule />
- </Binding.ValidationRules>
- </Binding>
- </TextBox.Text>
- </TextBox>
- </Grid>
- <StackPanel Grid.Row="1"
- Orientation="Horizontal"
- HorizontalAlignment="Right">
- <Button Height="30"
- materialDesign:ButtonAssist.CornerRadius="10"
- ToolTip="{lex:Loc 确定}"
- Command="{Binding ConfirmCommand}">
- <TextBlock Text="{lex:Loc 确定}" />
- <Button.Style>
- <Style TargetType="Button"
- BasedOn="{StaticResource MaterialDesignRaisedButton}">
- <Style.Triggers>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <!-- 当且仅当IP地址合规且其他条件满足时,启用按钮 -->
- <Condition Binding="{Binding ElementName=txt_IP, Path=(Validation.HasError)}"
- Value="False" />
- <Condition Binding="{Binding ElementName=txt_Name, Path=(Validation.HasError)}"
- Value="False" />
- <Condition Binding="{Binding ElementName=txt_Port, Path=(Validation.HasError)}"
- Value="False" />
- </MultiDataTrigger.Conditions>
- <Setter Property="IsEnabled"
- Value="True" />
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </Button.Style>
- </Button>
- <Button Height="30"
- Margin="20,0"
- materialDesign:ButtonAssist.CornerRadius="10"
- Style="{StaticResource MaterialDesignRaisedButton}"
- ToolTip="{lex:Loc 取消}"
- Command="{Binding CancelCommand}">
- <TextBlock Text="{lex:Loc 取消}" />
- </Button>
- </StackPanel>
- </Grid>
- </materialDesign:Transitioner>
- </UserControl>
|