feat: 在启动功能选择窗口中显示基础信息

在 StartupSelectionWindow 顶部添加基础信息展示模块,
显示文件名、最小钻咀、最小槽刀、最小EA刀直径,
与 MainWindow 中的基础信息面板布局一致。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 12:23:28 +08:00
parent cbaac0e034
commit ceb88c216a
3 changed files with 90 additions and 4 deletions

View File

@@ -36,7 +36,8 @@ namespace DrillTools
bool canClearParameters = CanClearDrillTapeParameters(filePath); bool canClearParameters = CanClearDrillTapeParameters(filePath);
bool canGeneratePpDrillTape = CanGeneratePpDrillTape(filePath); bool canGeneratePpDrillTape = CanGeneratePpDrillTape(filePath);
var selectionWindow = new StartupSelectionWindow(filePath, canClearParameters, canGeneratePpDrillTape); GetMinDiameters(filePath, out double minDrill, out double minSlot, out double minEA);
var selectionWindow = new StartupSelectionWindow(filePath, canClearParameters, canGeneratePpDrillTape, minDrill, minSlot, minEA);
selectionWindow.ShowDialog(); selectionWindow.ShowDialog();
switch (selectionWindow.SelectedAction) switch (selectionWindow.SelectedAction)
@@ -144,6 +145,34 @@ namespace DrillTools
} }
} }
private static void GetMinDiameters(string filePath, out double minDrillDiameter, out double minSlotDiameter, out double minEADiameter)
{
minDrillDiameter = 0;
minSlotDiameter = 0;
minEADiameter = 0;
try
{
var viewModel = new MainWindowViewModel
{
ShouldCheckSortFileOnLoad = false
};
string content = CommandTypeFileReader.ReadAllText(filePath);
viewModel.LoadToolsFromDrillTape(content);
if (viewModel.Tools.Count > 0)
{
minDrillDiameter = viewModel.MinDrillDiameter;
minSlotDiameter = viewModel.MinSlotDiameter;
minEADiameter = viewModel.MinEADiameter;
}
}
catch
{
}
}
private static void PerformPpDrillTapeGeneration(string filePath) private static void PerformPpDrillTapeGeneration(string filePath)
{ {
try try

View File

@@ -13,7 +13,57 @@
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding FileName}" FontWeight="Bold" TextWrapping="Wrap" Margin="0,0,0,10"/> <!-- 基础信息 -->
<GroupBox Grid.Row="0" Header="基础信息" Margin="0,0,0,10">
<Grid Margin="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="文件名:" />
<TextBlock
Margin="0,0,0,5"
VerticalAlignment="Center"
FontWeight="Bold"
Text="{Binding FileName}" />
</StackPanel>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小钻咀:" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinDrillDiameter, StringFormat=F3}" />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小槽刀:" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinSlotDiameter, StringFormat=F3}" />
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小EA刀" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinEADiameter, StringFormat=F3}" />
</StackPanel>
</Grid>
</Grid>
</GroupBox>
<TextBlock Grid.Row="1" Text="请选择要执行的功能:" Margin="0,0,0,15"/> <TextBlock Grid.Row="1" Text="请选择要执行的功能:" Margin="0,0,0,15"/>
<StackPanel Grid.Row="2" HorizontalAlignment="Center" Orientation="Horizontal"> <StackPanel Grid.Row="2" HorizontalAlignment="Center" Orientation="Horizontal">

View File

@@ -16,10 +16,17 @@ namespace DrillTools
{ {
public StartupAction SelectedAction { get; private set; } = StartupAction.None; public StartupAction SelectedAction { get; private set; } = StartupAction.None;
public StartupSelectionWindow(string filePath, bool canClearParameters = false, bool canGeneratePpDrillTape = false) public StartupSelectionWindow(string filePath, bool canClearParameters = false, bool canGeneratePpDrillTape = false,
double minDrillDiameter = 0, double minSlotDiameter = 0, double minEADiameter = 0)
{ {
InitializeComponent(); InitializeComponent();
DataContext = new { FileName = Path.GetFileName(filePath) }; DataContext = new
{
FileName = Path.GetFileNameWithoutExtension(filePath),
MinDrillDiameter = minDrillDiameter,
MinSlotDiameter = minSlotDiameter,
MinEADiameter = minEADiameter
};
ClearParametersButton.Visibility = canClearParameters ? Visibility.Visible : Visibility.Collapsed; ClearParametersButton.Visibility = canClearParameters ? Visibility.Visible : Visibility.Collapsed;
GeneratePpDrillTapeButton.Visibility = canGeneratePpDrillTape ? Visibility.Visible : Visibility.Collapsed; GeneratePpDrillTapeButton.Visibility = canGeneratePpDrillTape ? Visibility.Visible : Visibility.Collapsed;
} }