Mesen2/UI/Controls/ImageAspectRatio.cs
2024-09-19 21:19:43 +09:00

35 lines
787 B
C#

using Avalonia;
using Avalonia.Controls;
using System;
using Avalonia.Interactivity;
using Avalonia.Styling;
using Avalonia.Input;
using Mesen.Debugger.Utilities;
using System.Globalization;
namespace Mesen.Controls
{
public class ImageAspectRatio : Image
{
protected override Type StyleKeyOverride => typeof(Image);
public ImageAspectRatio()
{
}
protected override Size ArrangeOverride(Size finalSize)
{
finalSize = base.ArrangeOverride(finalSize);
if(Source == null) {
return finalSize;
}
double ratio = Source.Size.Width / Source.Size.Height;
if(finalSize.Width >= finalSize.Height * ratio) {
return new Size(finalSize.Height * ratio, finalSize.Height);
} else {
return new Size(finalSize.Width, finalSize.Width / ratio);
}
}
}
}