diff --git a/SpineViewer/SpineViewer.csproj b/SpineViewer/SpineViewer.csproj
index 6802e32..be27fe0 100644
--- a/SpineViewer/SpineViewer.csproj
+++ b/SpineViewer/SpineViewer.csproj
@@ -22,7 +22,9 @@
PreserveNewest
-
+
+ PreserveNewest
+
diff --git a/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs b/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs
index 31bc195..e844d31 100644
--- a/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs
+++ b/SpineViewer/ViewModels/MainWindow/MainWindowViewModel.cs
@@ -5,6 +5,7 @@ using SFMLRenderer;
using SpineViewer.Models;
using SpineViewer.Services;
using SpineViewer.Utils;
+using System.Windows;
using System.Windows.Shell;
namespace SpineViewer.ViewModels.MainWindow
@@ -72,6 +73,8 @@ namespace SpineViewer.ViewModels.MainWindow
public SFMLRendererViewModel SFMLRendererViewModel => _sfmlRendererViewModel;
private readonly SFMLRendererViewModel _sfmlRendererViewModel;
+ public RelayCommand Cmd_Exit => new(App.Current.Shutdown);
+
///
/// 打开工作区
///
diff --git a/SpineViewer/Views/MainWindow.xaml b/SpineViewer/Views/MainWindow.xaml
index 0c5d959..1089639 100644
--- a/SpineViewer/Views/MainWindow.xaml
+++ b/SpineViewer/Views/MainWindow.xaml
@@ -480,7 +480,7 @@
-
+
@@ -922,6 +922,21 @@
Opened="BottomPopup_Opened"
MouseLeave="PopupContainer_MouseLeave"/>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SpineViewer/Views/MainWindow.xaml.cs b/SpineViewer/Views/MainWindow.xaml.cs
index 37b040d..7792962 100644
--- a/SpineViewer/Views/MainWindow.xaml.cs
+++ b/SpineViewer/Views/MainWindow.xaml.cs
@@ -44,8 +44,9 @@ public partial class MainWindow : Window
{
InitializeComponent();
InitializeLogConfiguration();
- _vm = new (_renderPanel);
- DataContext = _vm;
+ DataContext = _vm = new(_renderPanel);
+ _notifyIcon.Text = _vm.Title; // XXX: hc 的 NotifyIcon 的 Text 似乎没法双向绑定
+
_vm.SpineObjectListViewModel.RequestSelectionChanging += SpinesListView_RequestSelectionChanging;
_vm.SFMLRendererViewModel.RequestSelectionChanging += SpinesListView_RequestSelectionChanging;
Loaded += MainWindow_Loaded;
@@ -313,6 +314,31 @@ public partial class MainWindow : Window
#endregion
+ #region _spineFilesListBox 事件
+
+ private void SpineFilesListBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ var list = (ListBox)sender;
+ if (VisualUpwardSearch(e.OriginalSource as DependencyObject) is null)
+ list.SelectedItems.Clear();
+ }
+
+ #endregion
+
+ #region _nofityIcon 事件处理
+
+ private void _notifyIcon_Click(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ private void _notifyIcon_MouseDoubleClick(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ #endregion
+
#region 切换全屏布局事件处理
private void SwitchToFullScreenLayout()
@@ -571,10 +597,4 @@ public partial class MainWindow : Window
#endregion
- private void SpineFilesListBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- var list = (ListBox)sender;
- if (VisualUpwardSearch(e.OriginalSource as DependencyObject) is null)
- list.SelectedItems.Clear();
- }
}
\ No newline at end of file