mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 18:57:19 +02:00
[ImageResizer]Use updated images from input when pressing Enter(#26292)
* [Image Resizer] HandleEnterKeyPress event added for image resizer. * [Image Resizer] * Comments are added to Button_KeyDown function * Uncessary spaces are removed. * [Image Resizer] Workaround reasons are added to function summary.
This commit is contained in:
@@ -86,7 +86,9 @@
|
||||
<ui:NumberBox SpinButtonPlacementMode="Compact"
|
||||
Minimum="0"
|
||||
Width="102"
|
||||
AutomationProperties.Name="{x:Static p:Resources.Width}"
|
||||
Name="WidthNumberBox"
|
||||
KeyDown="Button_KeyDown"
|
||||
AutomationProperties.Name="{x:Static p:Resources.Width}"
|
||||
Margin="8,0,0,0">
|
||||
<ui:ControlHelper.Header>
|
||||
<TextBlock Text="{x:Static p:Resources.Width}" Margin="0,0,0,-1" />
|
||||
@@ -110,6 +112,8 @@
|
||||
SpinButtonPlacementMode="Compact"
|
||||
Minimum="0"
|
||||
Width="102"
|
||||
Name="HeightNumberBox"
|
||||
KeyDown="Button_KeyDown"
|
||||
AutomationProperties.Name="{x:Static p:Resources.Height}"
|
||||
Visibility="{Binding ElementName=SizeComboBox, Path= SelectedValue.ShowHeight, Converter={StaticResource BoolValueConverter}}">
|
||||
<ui:ControlHelper.Header>
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
// See the LICENSE file in the project root for more information. Code forked from Brice Lambson's https://github.com/bricelam/ImageResizer/
|
||||
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using ImageResizer.ViewModels;
|
||||
using ModernWpf.Controls;
|
||||
using static ImageResizer.ViewModels.InputViewModel;
|
||||
|
||||
namespace ImageResizer.Views
|
||||
{
|
||||
@@ -10,5 +14,52 @@ namespace ImageResizer.Views
|
||||
{
|
||||
public InputPage()
|
||||
=> InitializeComponent();
|
||||
|
||||
/// <summary>
|
||||
/// Pressing Enter key doesn't update value. PropertyChanged is only updated after losing focus to NumberBox.
|
||||
/// We add this workaround the UI limitations and might need to be revisited or not needed anymore if we upgrade to WinUI3.
|
||||
/// This function handles the KeyDown event for a NumberBox control.
|
||||
/// It checks if the key pressed is 'Enter'.
|
||||
/// According to the NumberBox name, it creates an instance of the KeyPressParams class with the appropriate dimension (Width or Height) and the parsed double value.
|
||||
/// </summary>
|
||||
private void Button_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
// Check if the key pressed is the 'Enter' key
|
||||
if (e.Key == Key.Enter)
|
||||
{
|
||||
var numberBox = sender as NumberBox;
|
||||
var viewModel = (InputViewModel)this.DataContext;
|
||||
double number;
|
||||
KeyPressParams keyParams;
|
||||
if (double.TryParse(((TextBox)e.OriginalSource).Text, out number))
|
||||
{
|
||||
// Determine which NumberBox triggered the event based on its name
|
||||
switch (numberBox.Name)
|
||||
{
|
||||
case "WidthNumberBox":
|
||||
keyParams = new KeyPressParams
|
||||
{
|
||||
Value = number,
|
||||
Dimension = Dimension.Width,
|
||||
};
|
||||
break;
|
||||
|
||||
case "HeightNumberBox":
|
||||
keyParams = new KeyPressParams
|
||||
{
|
||||
Value = number,
|
||||
Dimension = Dimension.Height,
|
||||
};
|
||||
break;
|
||||
|
||||
default:
|
||||
// Return without EnterKeyPressedCommand executed
|
||||
return;
|
||||
}
|
||||
|
||||
viewModel.EnterKeyPressedCommand.Execute(keyParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user