diff --git a/MainWindow.xaml b/MainWindow.xaml
index 756db7d..8159381 100644
--- a/MainWindow.xaml
+++ b/MainWindow.xaml
@@ -42,6 +42,10 @@
Click="ApplyOrderButton_Click"
Content="应用并保存"
IsEnabled="{Binding HasOriginalFile}" />
+
diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs
index 8240b24..4e95147 100644
--- a/MainWindow.xaml.cs
+++ b/MainWindow.xaml.cs
@@ -19,6 +19,9 @@ namespace DrillTools
var viewModel = new MainWindowViewModel();
DataContext = viewModel;
InitializeDragDrop();
+
+ // 设置默认置顶状态
+ this.Topmost = viewModel.IsTopmost;
}
///
@@ -141,6 +144,15 @@ namespace DrillTools
ViewModel.MoveSelectedToolDown();
}
+ ///
+ /// 置顶按钮点击事件
+ ///
+ private void ToggleTopmostButton_Click(object sender, RoutedEventArgs e)
+ {
+ ViewModel.ToggleTopmost();
+ this.Topmost = ViewModel.IsTopmost;
+ }
+
///
/// 刀具列表双击事件
///
diff --git a/MainWindowViewModel.cs b/MainWindowViewModel.cs
index dad54eb..b37674a 100644
--- a/MainWindowViewModel.cs
+++ b/MainWindowViewModel.cs
@@ -25,6 +25,7 @@ namespace DrillTools
private bool _canMoveUp;
private bool _canMoveDown;
private string _originalFilePath = string.Empty;
+ private bool _isTopmost = true; // 默认置顶
///
/// 刀具列表
@@ -107,6 +108,27 @@ namespace DrillTools
///
public bool HasOriginalFile => !string.IsNullOrEmpty(OriginalFilePath);
+ ///
+ /// 窗口是否置顶
+ ///
+ public bool IsTopmost
+ {
+ get => _isTopmost;
+ set
+ {
+ if (SetProperty(ref _isTopmost, value))
+ {
+ // 当IsTopmost改变时,通知TopmostButtonText属性也已更改
+ OnPropertyChanged(nameof(TopmostButtonText));
+ }
+ }
+ }
+
+ ///
+ /// 置顶按钮显示文本
+ ///
+ public string TopmostButtonText => IsTopmost ? "取消置顶" : "窗口置顶";
+
///
/// 从钻带内容加载刀具信息
///
@@ -1223,7 +1245,7 @@ M30";
try
{
- // 使用ANSI编码读取文件
+ // 使用ANSI编码
Encoding ansiEncoding;
try
{
@@ -1234,7 +1256,26 @@ M30";
ansiEncoding = Encoding.Default; // 如果获取失败,使用系统默认编码
}
- string[] lines = File.ReadAllLines(sortFilePath, ansiEncoding);
+ // 使用 cmd 命令读取-sort.txt文件,参考钻带文件读取方法
+ var process = new Process
+ {
+ StartInfo = new ProcessStartInfo
+ {
+ FileName = "cmd.exe",
+ Arguments = $"/c type \"{sortFilePath}\"",
+ RedirectStandardOutput = true,
+ UseShellExecute = false,
+ CreateNoWindow = true,
+ StandardOutputEncoding = ansiEncoding
+ }
+ };
+
+ process.Start();
+ string fileContent = process.StandardOutput.ReadToEnd();
+ process.WaitForExit();
+
+ // 按行分割内容
+ string[] lines = fileContent.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in lines)
{
@@ -1293,5 +1334,13 @@ M30";
tools.Add(tool);
}
}
+
+ ///
+ /// 切换窗口置顶状态
+ ///
+ public void ToggleTopmost()
+ {
+ IsTopmost = !IsTopmost;
+ }
}
}
\ No newline at end of file