This commit is contained in:
GukSang.Jin
2026-05-18 15:18:28 +08:00
parent 8f981c296f
commit 386dfa6043
8 changed files with 372 additions and 183 deletions

View File

@@ -1,145 +1,214 @@
<Window x:Class="TabletTester2025.SettingsWindow"
<Window x:Class="TabletTester2025.SettingsWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="clr-namespace:TabletTester2025.Helpers"
Title="参数设置 - 中国药典2025"
Width="1024" MinHeight="768" WindowState="Maximized"
WindowStartupLocation="CenterScreen"
ResizeMode="CanResize" Background="#F5F5F5">
Title="参数设置 - 中国药典2025"
Width="1024"
MinHeight="768"
WindowState="Maximized"
WindowStartupLocation="CenterScreen"
ResizeMode="CanResize"
Background="#EDF1F5">
<Window.Resources>
<SolidColorBrush x:Key="PanelBorderBrush" Color="#D8E1EC"/>
<SolidColorBrush x:Key="PrimaryBrush" Color="#1565A9"/>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="0,0,0,14"/>
<Setter Property="Padding" Value="14"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="{StaticResource PanelBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<Style TargetType="TextBlock" x:Key="ParamLabel">
<Setter Property="Width" Value="220"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="#526273"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="Normal"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="Width" Value="180"/>
<Setter Property="Height" Value="40"/>
<Setter Property="Padding" Value="8,2"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="helpers:NumericInput.IsEnabled" Value="True"/>
</Style>
<Style TargetType="StackPanel" x:Key="ParamRow">
<Setter Property="Orientation" Value="Horizontal"/>
<Setter Property="Margin" Value="0,6,32,6"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="TextBlock" x:Key="StandardNote">
<Setter Property="Foreground" Value="#6A7888"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Margin" Value="0,10,0,0"/>
</Style>
</Window.Resources>
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="药典参数设置" FontSize="20" FontWeight="Bold" Margin="0,0,0,20" HorizontalAlignment="Center"/>
<!-- 硬度 -->
<GroupBox Header="硬度测试" Grid.Row="1" Margin="0,5">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="内控下限(N):" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="HardnessMinBox" Grid.Row="0" Grid.Column="1" Margin="5" Text="40"/>
<TextBlock Text="内控上限(N):" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="HardnessMaxBox" Grid.Row="1" Grid.Column="1" Margin="5" Text="60"/>
<TextBlock Text="测试次数:" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="HardnessCountBox"
Grid.Row="2"
Grid.Column="1"
Margin="5"
Text="6"
helpers:NumericInput.AllowDecimal="False"/>
</Grid>
</GroupBox>
<Border Background="#0F3D68" CornerRadius="6" Padding="14,10" Margin="0,0,0,14">
<TextBlock Text="药典与内控参数设置"
Foreground="White"
FontSize="22"
FontWeight="Bold"/>
</Border>
<!-- 脆碎度 -->
<GroupBox Header="脆碎度" Grid.Row="2" Margin="0,5">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="转速(r/min):" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="FriabilityRpmBox" Grid.Row="0" Grid.Column="1" Margin="5" Text="25.0"/>
<TextBlock Text="试验转数:" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="FriabilityRoundsBox"
Grid.Row="1"
Grid.Column="1"
Margin="5"
Text="100"
helpers:NumericInput.AllowDecimal="False"/>
<TextBlock Text="最大失重率(%):" Grid.Row="2" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="FriabilityMaxLossBox" Grid.Row="2" Grid.Column="1" Margin="5" Text="1.0"/>
</Grid>
</GroupBox>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<StackPanel>
<GroupBox Header="硬度内控">
<StackPanel>
<WrapPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="内控下限(N):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="HardnessMinBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="内控上限(N):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="HardnessMaxBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="测试次数:" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="HardnessCountBox" helpers:NumericInput.AllowDecimal="False"/>
</StackPanel>
</WrapPanel>
<TextBlock Text="硬度没有统一药典数值限度,此处作为企业内控范围和本机测试次数。"
Style="{StaticResource StandardNote}"/>
</StackPanel>
</GroupBox>
<!-- 崩解时限 -->
<GroupBox Header="崩解时限" Grid.Row="3" Margin="0,5">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="剂型规则:" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"/>
<ComboBox x:Name="DisintegrationDosageFormBox"
Grid.Row="0"
Grid.Column="1"
Margin="5"
Height="40"
FontSize="15"
SelectionChanged="DisintegrationDosageFormBox_SelectionChanged">
<ComboBoxItem Content="普通片" Tag="900"/>
<ComboBoxItem Content="薄膜衣片" Tag="1800"/>
<ComboBoxItem Content="糖衣片" Tag="3600"/>
<ComboBoxItem Content="胶囊" Tag="1800"/>
</ComboBox>
<TextBlock Text="最长崩解时间(秒):" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="DisintegrationMaxSecBox"
Grid.Row="1"
Grid.Column="1"
Margin="5"
Text="900"
helpers:NumericInput.AllowDecimal="False"/>
</Grid>
</GroupBox>
<GroupBox Header="脆碎度 - 通则0923">
<StackPanel>
<WrapPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="转速(r/min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="FriabilityRpmBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="试验转数:" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="FriabilityRoundsBox" helpers:NumericInput.AllowDecimal="False"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="最大失重率(%):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="FriabilityMaxLossBox"/>
</StackPanel>
</WrapPanel>
<TextBlock Text="通则默认转速25±1 r/min转动100次减失重量不得过1.0%,且不得检出断裂、龟裂或粉碎的片。"
Style="{StaticResource StandardNote}"/>
</StackPanel>
</GroupBox>
<!-- 溶出度 -->
<GroupBox Header="溶出度" Grid.Row="4" Margin="0,5">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="30分钟最低溶出度(%):" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"/>
<TextBox x:Name="DissolutionMinPercentBox" Grid.Row="0" Grid.Column="1" Margin="5" Text="80.0"/>
<TextBlock Text="取样时间点(分钟,逗号分隔):" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Margin="0,5,0,0"/>
<TextBox x:Name="SampleTimesBox"
Grid.Row="1"
Grid.Column="1"
Margin="5"
Text="5,10,15,30,45,60"
helpers:NumericInput.IsEnabled="False"/>
</Grid>
</GroupBox>
<GroupBox Header="崩解时限 - 通则0921">
<StackPanel>
<WrapPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="剂型规则:" Style="{StaticResource ParamLabel}"/>
<ComboBox x:Name="DisintegrationDosageFormBox"
Width="180"
Height="40"
FontSize="15"
SelectionChanged="DisintegrationDosageFormBox_SelectionChanged">
<ComboBoxItem Content="普通片" Tag="900"/>
<ComboBoxItem Content="薄膜衣片" Tag="1800"/>
<ComboBoxItem Content="糖衣片" Tag="3600"/>
<ComboBoxItem Content="胶囊" Tag="1800"/>
</ComboBox>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="最长崩解时间(秒):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="DisintegrationMaxSecBox" helpers:NumericInput.AllowDecimal="False"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="升降频率(次/min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="DisintegrationSpeedBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="介质温度(℃):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="DisintegrationTempBox"/>
</StackPanel>
</WrapPanel>
<TextBlock Text="通则默认升降频率30-32次/min介质温度37±1℃。不同剂型按药典或品种正文规定时限执行。"
Style="{StaticResource StandardNote}"/>
</StackPanel>
</GroupBox>
<!-- 按钮 -->
<StackPanel Grid.Row="5" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,20">
<Button x:Name="SaveButton" Content="保存" Width="80" Height="30" Margin="5" Click="SaveButton_Click" Background="#2196F3" Foreground="White" BorderThickness="0"/>
<Button x:Name="CancelButton" Content="取消" Width="80" Height="30" Margin="5" Click="CancelButton_Click" Background="#9E9E9E" Foreground="White" BorderThickness="0"/>
<GroupBox Header="溶出度 - 通则0931">
<StackPanel>
<WrapPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="30分钟最低溶出度Q(%):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="DissolutionMinPercentBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="溶出介质温度(℃):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="DissolutionTempBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="溶出1运行时间(min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="Dissolution1TimeBox" helpers:NumericInput.AllowDecimal="False"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="溶出2运行时间(min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="Dissolution2TimeBox" helpers:NumericInput.AllowDecimal="False"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="溶出1取样间隔(min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="Dissolution1IntervalBox"/>
</StackPanel>
<StackPanel Style="{StaticResource ParamRow}">
<TextBlock Text="溶出2取样间隔(min):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="Dissolution2IntervalBox"/>
</StackPanel>
</WrapPanel>
<StackPanel Style="{StaticResource ParamRow}" Margin="0,8,0,0">
<TextBlock Text="取样时间点(分钟,逗号分隔):" Style="{StaticResource ParamLabel}"/>
<TextBox x:Name="SampleTimesBox"
Width="430"
helpers:NumericInput.IsEnabled="False"/>
</StackPanel>
<TextBlock Text="通则默认普通制剂通常取6片溶出介质温度37±0.5℃Q值、介质、转速和取样点应按具体品种正文或企业批准标准录入。"
Style="{StaticResource StandardNote}"/>
</StackPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,16,0,0">
<Button x:Name="SaveButton"
Content="保存"
Width="110"
Height="40"
Margin="6"
Click="SaveButton_Click"
Background="{StaticResource PrimaryBrush}"
Foreground="White"
BorderThickness="0"
FontWeight="SemiBold"/>
<Button x:Name="CancelButton"
Content="取消"
Width="110"
Height="40"
Margin="6"
Click="CancelButton_Click"
Background="#687789"
Foreground="White"
BorderThickness="0"
FontWeight="SemiBold"/>
</StackPanel>
</Grid>
</Window>