WSL/src/windows/wslsettings/Views/Settings/MemAndProcPage.xaml.cs

90 lines
2.5 KiB
C#

// Copyright (C) Microsoft Corporation. All rights reserved.
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Automation.Peers;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Navigation;
using WslSettings.Contracts.Services;
using WslSettings.ViewModels.Settings;
namespace WslSettings.Views.Settings;
public sealed partial class MemAndProcPage : Page
{
public MemAndProcViewModel ViewModel
{
get;
}
public MemAndProcPage()
{
ViewModel = App.GetService<MemAndProcViewModel>();
InitializeComponent();
Settings_ErrorTryAgainLater.RegisterPropertyChangedCallback(TextBlock.VisibilityProperty, (s, e) =>
{
if (ViewModel.ErrorVisibility)
{
FrameworkElementAutomationPeer.FromElement(Settings_ErrorTryAgainLater).RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
}
});
}
override protected void OnNavigatedFrom(NavigationEventArgs e)
{
App.GetService<IWslConfigService>().WslConfigChanged -= ViewModel.OnConfigChanged;
}
private void Settings_ResetButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{
if (sender == null)
{
return;
}
RuntimeHelper.TryMoveFocusPreviousControl(sender as Button);
}
public async void SwapFilePath_Click(object sender, RoutedEventArgs e)
{
// Open the picker for the user to pick a file
Windows.Storage.StorageFile file = await RuntimeHelper.PickSingleFileAsync([".vhdx"]);
if (file != null)
{
ViewModel.SwapFilePath = file.Path;
}
}
private void ProcCountTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender == null)
{
return;
}
TextBox? textBox = sender as TextBox;
ViewModel.SetProcCount_ResetEnabled(textBox!.Text);
}
private void MemorySizeTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender == null)
{
return;
}
TextBox? textBox = sender as TextBox;
ViewModel.SetMemorySize_ResetEnabled(textBox!.Text);
}
private void SwapSizeTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender == null)
{
return;
}
TextBox? textBox = sender as TextBox;
ViewModel.SetSwapSize_ResetEnabled(textBox!.Text);
}
}