Files
AohDrllTools/StartupSelectionWindow.xaml.cs
Mr.Xia fa697c9fd0 feat: 基础信息叠板计算功能
- 新增 StackCountCalculator: 数字化规则表(短槽刀/EA刀10×4、槽刀10×4、钻针10×6),公开Calculate方法,输入校验,查表逻辑,16oz铜厚递减
- 新增 StartupSelectionViewModel: 替换匿名DataContext,保留所有显示属性,新增板厚/铜厚输入、计算结果/明细、CanCalculate
- 新增 NonEmptyToVisibilityConverter
- 修改 StartupSelectionWindow.xaml: 增宽680px,新增3行(输入+结果+明细),计算按钮在基础信息内部
- 修改 StartupSelectionWindow.xaml.cs: 构造函数接收ViewModel,新增计算按钮事件
- 修改 App.xaml.cs: 构建ViewModel实例,CalculateStackMinDiameters独立遍历Tools(含0.749mm,排除机台码)
- 修改 App.xaml: 注册NonEmptyToVisibilityConverter
2026-06-27 16:24:45 +08:00

72 lines
2.2 KiB
C#

using System.Windows;
namespace DrillTools
{
public enum StartupAction
{
None,
AdjustToolOrder,
ExportHoleCount,
ClearParameters,
GeneratePpDrillTape,
ScaleDrillTape
}
public partial class StartupSelectionWindow : Window
{
public StartupAction SelectedAction { get; private set; } = StartupAction.None;
public StartupSelectionWindow(StartupSelectionViewModel viewModel,
bool canClearParameters = false, bool canGeneratePpDrillTape = false,
bool canScaleDrillTape = false)
{
InitializeComponent();
DataContext = viewModel;
ClearParametersButton.Visibility = canClearParameters ? Visibility.Visible : Visibility.Collapsed;
GeneratePpDrillTapeButton.Visibility = canGeneratePpDrillTape ? Visibility.Visible : Visibility.Collapsed;
ScaleDrillTapeButton.Visibility = canScaleDrillTape ? Visibility.Visible : Visibility.Collapsed;
}
private void AdjustToolOrder_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.AdjustToolOrder;
Close();
}
private void ExportHoleCount_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.ExportHoleCount;
Close();
}
private void ClearParameters_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.ClearParameters;
Close();
}
private void GeneratePpDrillTape_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.GeneratePpDrillTape;
Close();
}
private void ScaleDrillTape_Click(object sender, RoutedEventArgs e)
{
SelectedAction = StartupAction.ScaleDrillTape;
Close();
}
/// <summary>
/// 计算叠板按钮点击事件
/// </summary>
private void CalculateStackCount_Click(object sender, RoutedEventArgs e)
{
if (DataContext is StartupSelectionViewModel vm)
{
vm.CalculateStackCount();
}
}
}
}