| File: Primitives\SizeRequest.cs | Web Access |
| Project: src\src\Core\src\Core.csproj (Microsoft.Maui) |
using System; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using Microsoft.Maui.Graphics; namespace Microsoft.Maui { /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="Type[@FullName='Microsoft.Maui.SizeRequest']/Docs/*" /> [DebuggerDisplay("Request={Request.Width}x{Request.Height}, Minimum={Minimum.Width}x{Minimum.Height}")] [TypeConverter(typeof(SizeRequestTypeConverter))] [Obsolete("Use Microsoft.Maui.Size instead.")] public struct SizeRequest : IEquatable<SizeRequest> { /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="//Member[@MemberName='Request']/Docs/*" /> public Size Request { get; set; } /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="//Member[@MemberName='Minimum']/Docs/*" /> public Size Minimum { get; set; } /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="//Member[@MemberName='.ctor'][2]/Docs/*" /> public SizeRequest(Size request, Size minimum) { Request = request; Minimum = minimum; } /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="//Member[@MemberName='.ctor'][1]/Docs/*" /> public SizeRequest(Size request) { Request = request; Minimum = request; } /// <include file="../../docs/Microsoft.Maui/SizeRequest.xml" path="//Member[@MemberName='ToString']/Docs/*" /> public override string ToString() { return string.Format("{{Request={0} Minimum={1}}}", Request, Minimum); } public bool Equals(SizeRequest other) => Request.Equals(other.Request) && Minimum.Equals(other.Minimum); public static implicit operator SizeRequest(Size size) => new SizeRequest(size); public static implicit operator Size(SizeRequest size) => size.Request; public override bool Equals(object? obj) => obj is SizeRequest other && Equals(other); public override int GetHashCode() => Request.GetHashCode() ^ Minimum.GetHashCode(); public static bool operator ==(SizeRequest left, SizeRequest right) => left.Equals(right); public static bool operator !=(SizeRequest left, SizeRequest right) => !(left == right); private sealed class SizeRequestTypeConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext? context, Type? sourceType) => sourceType == typeof(Size); public override object ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object? value) => value switch { Size size => (SizeRequest)size, _ => throw new NotSupportedException(), }; public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType) => destinationType == typeof(Size); public override object ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type? destinationType) { if (value is SizeRequest sizeRequest) { if (destinationType == typeof(Size)) return (Size)sizeRequest; } throw new NotSupportedException(); } } } }