mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
|
|
using Avalonia.Controls;
|
||
|
|
using Avalonia.Input;
|
||
|
|
using Avalonia.Interactivity;
|
||
|
|
using Avalonia.Platform.Storage;
|
||
|
|
using LanDesktopPLONDS.Installer.ViewModels;
|
||
|
|
|
||
|
|
namespace LanDesktopPLONDS.Installer.Views;
|
||
|
|
|
||
|
|
public partial class MainWindow : Window
|
||
|
|
{
|
||
|
|
public MainWindow()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void OnDataContextChanged(EventArgs e)
|
||
|
|
{
|
||
|
|
base.OnDataContextChanged(e);
|
||
|
|
if (DataContext is MainWindowViewModel viewModel)
|
||
|
|
{
|
||
|
|
viewModel.BrowseRequested = BrowseForFolderAsync;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private async Task<string?> BrowseForFolderAsync(string currentPath)
|
||
|
|
{
|
||
|
|
var startFolder = Directory.Exists(currentPath)
|
||
|
|
? await StorageProvider.TryGetFolderFromPathAsync(currentPath)
|
||
|
|
: null;
|
||
|
|
var result = await StorageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
|
||
|
|
{
|
||
|
|
Title = "选择安装位置",
|
||
|
|
AllowMultiple = false,
|
||
|
|
SuggestedStartLocation = startFolder
|
||
|
|
});
|
||
|
|
|
||
|
|
return result.Count == 0 ? null : result[0].Path.LocalPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnTitleBarPointerPressed(object? sender, PointerPressedEventArgs e)
|
||
|
|
{
|
||
|
|
_ = sender;
|
||
|
|
if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed)
|
||
|
|
{
|
||
|
|
BeginMoveDrag(e);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnMinimizeClick(object? sender, RoutedEventArgs e)
|
||
|
|
{
|
||
|
|
_ = sender;
|
||
|
|
_ = e;
|
||
|
|
WindowState = WindowState.Minimized;
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnCloseClick(object? sender, RoutedEventArgs e)
|
||
|
|
{
|
||
|
|
_ = sender;
|
||
|
|
_ = e;
|
||
|
|
Close();
|
||
|
|
}
|
||
|
|
}
|