更新dll,

添加锁屏界面汉化
This commit is contained in:
Han Qiang Qiang 2024-01-09 15:25:02 +08:00
parent cc3d758c37
commit ab568df2ec
9 changed files with 133 additions and 122 deletions

View File

@ -4,51 +4,55 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="http://www.caliburn.org"
xmlns:client="clr-namespace:SicUI.Client"
xmlns:controls="clr-namespace:MECF.Framework.UI.Client.Ctrlib.Controls;assembly=MECF.Framework.UI.Client"
xmlns:converter="clr-namespace:SicUI.Converter"
xmlns:converters="clr-namespace:MECF.Framework.UI.Core.Converters;assembly=MECF.Framework.UI.Core"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:deviceControl="clr-namespace:Aitex.Core.UI.DeviceControl;assembly=MECF.Framework.UI.Core"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:wnd="http://OpenSEMI.Ctrlib.com/presentation"
xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
xmlns:converters="clr-namespace:MECF.Framework.UI.Core.Converters;assembly=MECF.Framework.UI.Core"
xmlns:controls="clr-namespace:MECF.Framework.UI.Client.Ctrlib.Controls;assembly=MECF.Framework.UI.Client"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:converter="clr-namespace:SicUI.Converter"
xmlns:lex="http://wpflocalizeextension.codeplex.com"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
xmlns:wnd="http://OpenSEMI.Ctrlib.com/presentation"
Title="Sic Auto Edition"
WindowStartupLocation="CenterScreen"
WindowState="Maximized"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=client:MainViewModel, IsDesignTimeCreatable=False}"
d:DataContext="{d:DesignInstance Type=client:MainViewModel,
IsDesignTimeCreatable=False}"
lex:LocalizeDictionary.DesignCulture="en"
lex:ResxLocalizationProvider.DefaultAssembly="Sicentury.Localization"
lex:ResxLocalizationProvider.DefaultDictionary="lang_common">
lex:ResxLocalizationProvider.DefaultDictionary="lang_common"
WindowStartupLocation="CenterScreen"
WindowState="Maximized"
mc:Ignorable="d">
<Window.Resources>
<client:CollectionLastIndexConverter x:Key="collectionLastIndexConverter" />
<converter:IsReadOnlyModeToUserInfoNameBgConverter x:Key="IsReadOnlyModeToUserInfoNameBgConverter" />
</Window.Resources>
<Grid Background="{DynamicResource MainArea_BG}">
<Grid x:Name="LoginPart" Panel.ZIndex="0" Background="{StaticResource Login_BG}">
<Grid
x:Name="LoginPart"
Panel.ZIndex="0"
Background="{StaticResource Login_BG}">
<Grid.Style>
<Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsLogin}" Value="True"/>
<Condition Binding="{Binding IsLogin}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Grid.Visibility" Value="Hidden" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsLogin}" Value="False"/>
<Condition Binding="{Binding IsReadOnlyMode}" Value="True"/>
<Condition Binding="{Binding IsLogin}" Value="False" />
<Condition Binding="{Binding IsReadOnlyMode}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Grid.Visibility" Value="Hidden" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsLogin}" Value="False"/>
<Condition Binding="{Binding IsReadOnlyMode}" Value="False"/>
<Condition Binding="{Binding IsLogin}" Value="False" />
<Condition Binding="{Binding IsReadOnlyMode}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Grid.Visibility" Value="Visible" />
</MultiDataTrigger>
@ -241,7 +245,10 @@
Margin="3,0,0,0"
Fill="#33FFFFFF" />
</StackPanel>
<Grid Grid.Row="2" Margin="40">
<Grid
Grid.Row="2"
Margin="40"
lex:ResxLocalizationProvider.DefaultDictionary="lang_config">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130" />
<ColumnDefinition />
@ -296,7 +303,7 @@
FontSize="16"
FontWeight="Bold"
Foreground="{DynamicResource FG_White}"
Text="User Name"
Text="{lex:Loc ID_TXT_Login_Name}"
TextWrapping="Wrap" />
<TextBlock
Grid.Row="1"
@ -307,7 +314,7 @@
FontSize="16"
FontWeight="Bold"
Foreground="{DynamicResource FG_White}"
Text="Password"
Text="{lex:Loc ID_TXT_Password}"
TextWrapping="Wrap" />
<TextBlock
Grid.Row="2"
@ -318,16 +325,18 @@
FontSize="16"
FontWeight="Bold"
Foreground="{DynamicResource FG_White}"
Text="Role"
Text="{lex:Loc ID_TXT_Role}"
TextWrapping="Wrap" />
</Grid>
<Button
x:Name="ID_BTN_Login_Content"
Grid.Row="3"
Width="160"
Height="55"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="Login"
lex:ResxLocalizationProvider.DefaultDictionary="lang_common"
Content="{lex:Loc}"
FontFamily="Arial"
FontSize="18"
FontWeight="Bold"
@ -358,15 +367,15 @@
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsLogin}" Value="False"/>
<Condition Binding="{Binding IsReadOnlyMode}" Value="True"/>
<Condition Binding="{Binding IsLogin}" Value="False" />
<Condition Binding="{Binding IsReadOnlyMode}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Grid.Visibility" Value="Visible" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsLogin}" Value="False"/>
<Condition Binding="{Binding IsReadOnlyMode}" Value="False"/>
<Condition Binding="{Binding IsLogin}" Value="False" />
<Condition Binding="{Binding IsReadOnlyMode}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Grid.Visibility" Value="Hidden" />
</MultiDataTrigger>
@ -427,7 +436,7 @@
Padding="5,0"
FontSize="13"
Foreground="white"
Text="{lex:Loc ID_TXT_Ver}" />
Text="{lex:Loc ID_TXT_Ver}" />
<TextBlock
Padding="5,0"
FontSize="13"
@ -435,10 +444,10 @@
Text="{Binding SoftwareVersion}" />
</StackPanel>
<Grid
IsHitTestVisible="{Binding IsReadOnlyMode, Converter={StaticResource BoolReverseConverter}}"
Grid.Column="1"
Margin="-25,8,0,8"
ColumnSpan="2">
ColumnSpan="2"
IsHitTestVisible="{Binding IsReadOnlyMode, Converter={StaticResource BoolReverseConverter}}">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
@ -454,138 +463,138 @@
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="0"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="System"
ModuleName="System"
IsOnline="{Binding IsOnlineSystem}"
ModuleDescription="All Module"
IsOnline="{Binding IsOnlineSystem}"
Status="{Binding RtStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="System"
Status="{Binding RtStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="1"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="TM"
ModuleName="TM"
ModuleDescription="TM"
IsOnline="{Binding IsOnlineTM}"
Status="{Binding TMStatus}"
HasWarning="{Binding IsTMWarning}"
WarningTip="{Binding TMWarningMessage}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
IsOnline="{Binding IsOnlineTM}"
ModuleDescription="TM"
ModuleName="TM"
Status="{Binding TMStatus}"
WarningTip="{Binding TMWarningMessage}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="2"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="EFEM"
ModuleName="EFEM"
IsOnline="{Binding IsOnlineEFEM}"
ModuleDescription="EFEM"
IsOnline="{Binding IsOnlineEFEM}"
Status="{Binding EFEMStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="EFEM"
Status="{Binding EFEMStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="3"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="Load"
ModuleName="LoadLock"
IsOnline="{Binding IsOnlineLL}"
ModuleDescription="LoadLock"
IsOnline="{Binding IsOnlineLL}"
Status="{Binding LLStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="LoadLock"
Status="{Binding LLStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="4"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="Aligner"
ModuleName="Aligner"
IsOnline="{Binding IsOnlineAligner}"
ModuleDescription="Aligner"
IsOnline="{Binding IsOnlineAligner}"
Status="{Binding AlignerStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="Aligner"
Status="{Binding AlignerStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="5"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="CassBL"
ModuleName="CassBL"
IsOnline="{Binding IsOnlineCassBL}"
ModuleDescription="CassBL"
IsOnline="{Binding IsOnlineCassBL}"
Status="{Binding CassBLStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="CassBL"
Status="{Binding CassBLStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="0"
Grid.Row="0"
Grid.Column="6"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="WaferRobot"
ModuleName="WaferRobot"
IsOnline="{Binding IsOnlineWaferRobot}"
ModuleDescription="WaferRobot"
IsOnline="{Binding IsOnlineWaferRobot}"
Status="{Binding WaferRobotStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="WaferRobot"
Status="{Binding WaferRobotStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="0"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="PM1"
ModuleName="PM1"
ModuleDescription="PM1"
IsOnline="{Binding IsOnlinePM1}"
Status="{Binding PM1Status}"
HasWarning="{Binding IsPM1Warning}"
WarningTip="{Binding PM1WarningMessage}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
IsOnline="{Binding IsOnlinePM1}"
ModuleDescription="PM1"
ModuleName="PM1"
Status="{Binding PM1Status}"
WarningTip="{Binding PM1WarningMessage}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="1"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="PM2"
ModuleName="PM2"
ModuleDescription="PM2"
IsOnline="{Binding IsOnlinePM2}"
Status="{Binding PM2Status}"
HasWarning="{Binding IsPM2Warning}"
WarningTip="{Binding PM2WarningMessage}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
IsOnline="{Binding IsOnlinePM2}"
ModuleDescription="PM2"
ModuleName="PM2"
Status="{Binding PM2Status}"
WarningTip="{Binding PM2WarningMessage}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="2"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="Buffer"
ModuleName="Buffer"
IsOnline="{Binding IsOnlineBuffer}"
ModuleDescription="Buffer"
IsOnline="{Binding IsOnlineBuffer}"
Status="{Binding BufferStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="Buffer"
Status="{Binding BufferStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="3"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="UnLoad"
ModuleName="UnLoad"
IsOnline="{Binding IsOnlineUnLoad}"
ModuleDescription="UnLoad"
IsOnline="{Binding IsOnlineUnLoad}"
Status="{Binding UnLoadStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="UnLoad"
Status="{Binding UnLoadStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="4"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="CassAL"
ModuleName="CassAL"
IsOnline="{Binding IsOnlineCassAL}"
ModuleDescription="CassAL"
IsOnline="{Binding IsOnlineCassAL}"
Status="{Binding CassALStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="CassAL"
Status="{Binding CassALStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="5"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="CassAR"
ModuleName="CassAR"
IsOnline="{Binding IsOnlineCassAR}"
ModuleDescription="CassAR"
IsOnline="{Binding IsOnlineCassAR}"
Status="{Binding CassARStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="CassAR"
Status="{Binding CassARStatus}" />
<controls:ModuleStatusIndicator
Grid.Row="1"
Grid.Row="1"
Grid.Column="6"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]"
Caption="TrayRobot"
ModuleName="TrayRobot"
IsOnline="{Binding IsOnlineTrayRobot}"
ModuleDescription="TrayRobot"
IsOnline="{Binding IsOnlineTrayRobot}"
Status="{Binding TrayRobotStatus}"
cal:Message.Attach="[SetOnline] = [Action SetModuleOnline($source, $eventArgs)];[SetOffline] = [Action SetModuleOffline($source, $eventArgs)]" />
ModuleName="TrayRobot"
Status="{Binding TrayRobotStatus}" />
<Grid
Grid.Row="2"
Grid.Column="0"
@ -605,13 +614,14 @@
Content="{lex:Loc ID_TXT_Log}"
Style="{DynamicResource TopLable_LeftBottom}" />
<ComboBox
Grid.Column="1" Height="Auto"
Grid.Column="1"
Height="Auto"
VerticalContentAlignment="Center"
FontSize="15"
ItemsSource="{Binding EventLogsView}"
SelectedIndex="{Binding EventLogsView.Count, Mode=OneWay, Converter={StaticResource collectionLastIndexConverter}}"
Style="{DynamicResource Top_ComboBox}"
Visibility="{Binding AllEventsVisibility}"/>
Visibility="{Binding AllEventsVisibility}" />
<Label
Grid.Column="2"
HorizontalContentAlignment="Center"
@ -621,11 +631,11 @@
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{lex:Loc ID_CBX_Alarm_Content}"
ToolTip="{lex:Loc ID_CBX_Alarm_ToolTip}"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
IsChecked="{Binding IsShowAlarmEventOnly, Delay=10}" />
IsChecked="{Binding IsShowAlarmEventOnly, Delay=10}"
ToolTip="{lex:Loc ID_CBX_Alarm_ToolTip}" />
</Label>
<Button
Grid.Column="3"
@ -633,8 +643,8 @@
Height="30"
Margin="0"
Content="{lex:Loc ID_BTN_Reset_Content}"
ToolTip="{lex:Loc ID_BTN_Reset_ToolTip}"
Style="{DynamicResource TopButton}">
Style="{DynamicResource TopButton}"
ToolTip="{lex:Loc ID_BTN_Reset_ToolTip}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="Reset" />
@ -647,8 +657,8 @@
Height="30"
Margin="0"
Content="{lex:Loc ID_BTN_BuzzerOff_Content}"
ToolTip="{lex:Loc ID_BTN_BuzzerOff_ToolTip}"
Style="{DynamicResource TopButton}">
Style="{DynamicResource TopButton}"
ToolTip="{lex:Loc ID_BTN_BuzzerOff_ToolTip}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="BuzzerOff" />
@ -697,8 +707,8 @@
Grid.Row="1"
Margin="2,4"
Content="{lex:Loc ID_BTN_Logout_Content}"
ToolTip="{lex:Loc ID_BTN_Logout_ToolTip}"
Style="{DynamicResource Logout_Button}">
Style="{DynamicResource Logout_Button}"
ToolTip="{lex:Loc ID_BTN_Logout_ToolTip}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="ShowLogoutDialog" />
@ -709,11 +719,12 @@
</Grid>
</Border>
</Grid>
<Grid Grid.Row="1"
x:Name="GdContentContainer"
Background="{DynamicResource MainArea_BG}"
IsHitTestVisible="{Binding IsReadOnlyMode, Converter={StaticResource BoolReverseConverter}}"
PreviewKeyDown="GdContentContainer_OnPreviewKeyDown">
<Grid
x:Name="GdContentContainer"
Grid.Row="1"
Background="{DynamicResource MainArea_BG}"
IsHitTestVisible="{Binding IsReadOnlyMode, Converter={StaticResource BoolReverseConverter}}"
PreviewKeyDown="GdContentContainer_OnPreviewKeyDown">
<ContentControl
x:Name="ActiveItem"
Margin="10"