Compare commits

...

1 Commits

Author SHA1 Message Date
Gordon Lam (SH) (from Dev Box)
836147b3c3 initial fix 2025-10-15 18:52:53 +08:00
2 changed files with 22 additions and 1 deletions

View File

@@ -65,6 +65,17 @@ public partial class ImageSize : INotifyPropertyChanged, IHasId
get => !(Unit == ResizeUnit.Percent && Fit != ResizeFit.Stretch);
}
/// <summary>
/// Gets the localized header text for the Width field. When in Percent mode (non-stretch),
/// returns "Percent" since the value represents a scale factor for both dimensions.
/// Otherwise returns "Width".
/// </summary>
[JsonIgnore]
public string WidthHeader
{
get => !IsHeightUsed ? ResourceLoader.GetString("ImageResizer_Sizes_Units_Percent") : ResourceLoader.GetString("ImageResizer_Width");
}
[JsonPropertyName("name")]
public string Name
{
@@ -81,6 +92,7 @@ public partial class ImageSize : INotifyPropertyChanged, IHasId
if (SetProperty(ref _fit, value))
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsHeightUsed)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(WidthHeader)));
}
}
}
@@ -105,9 +117,18 @@ public partial class ImageSize : INotifyPropertyChanged, IHasId
get => _unit;
set
{
var previousUnit = _unit;
if (SetProperty(ref _unit, value))
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsHeightUsed)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(WidthHeader)));
// When switching to Percent unit, reset width and height to 100%
if (value == ResizeUnit.Percent && previousUnit != ResizeUnit.Percent)
{
Width = 100;
Height = 100;
}
}
}
}

View File

@@ -134,8 +134,8 @@
<StackPanel Orientation="Horizontal" Spacing="8">
<controls:ImageResizerDimensionsNumberBox
x:Uid="ImageResizer_Width"
Width="116"
Header="{x:Bind WidthHeader, Mode=OneWay}"
Minimum="0"
SpinButtonPlacementMode="Compact"
Value="{x:Bind Width, Mode=TwoWay, Converter={StaticResource ImageResizerNumberBoxValueConverter}}" />