using System; using Xamarin.Forms.Platform; namespace Xamarin.Forms { [ContentProperty("Content")] [RenderWith(typeof(_FrameRenderer))] public class Frame : ContentView, IElementConfiguration, IPaddingElement, IBorderElement { [Obsolete("OutlineColorProperty is obsolete as of version 3.0.0. Please use BorderColorProperty instead.")] public static readonly BindableProperty OutlineColorProperty = BorderElement.BorderColorProperty; public static readonly BindableProperty BorderColorProperty = BorderElement.BorderColorProperty; public static readonly BindableProperty HasShadowProperty = BindableProperty.Create("HasShadow", typeof(bool), typeof(Frame), true); public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create(nameof(CornerRadius), typeof(float), typeof(Frame), -1.0f, validateValue: (bindable, value) => ((float)value) == -1.0f || ((float)value) >= 0f); readonly Lazy> _platformConfigurationRegistry; public Frame() { _platformConfigurationRegistry = new Lazy>(() => new PlatformConfigurationRegistry(this)); } Thickness IPaddingElement.PaddingDefaultValueCreator() { return 20d; } public bool HasShadow { get { return (bool)GetValue(HasShadowProperty); } set { SetValue(HasShadowProperty, value); } } [Obsolete("OutlineColor is obsolete as of version 3.0.0. Please use BorderColor instead.")] public Color OutlineColor { get { return (Color)GetValue(OutlineColorProperty); } set { SetValue(OutlineColorProperty, value); } } public Color BorderColor { get { return (Color)GetValue(BorderElement.BorderColorProperty); } set { SetValue(BorderElement.BorderColorProperty, value); } } public float CornerRadius { get { return (float)GetValue(CornerRadiusProperty); } set { SetValue(CornerRadiusProperty, value); } } public IPlatformElementConfiguration On() where T : IConfigPlatform { return _platformConfigurationRegistry.Value.On(); } void IBorderElement.OnBorderColorPropertyChanged(Color oldValue, Color newValue) { #pragma warning disable 0618 // retain until OutlineColor removed OnPropertyChanged(nameof(OutlineColor)); #pragma warning restore } } }