| File: WebView\WebViewSource.cs | Web Access |
| Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls) |
#nullable disable using System; using System.ComponentModel; using System.Globalization; namespace Microsoft.Maui.Controls { /// <include file="../../docs/Microsoft.Maui.Controls/WebViewSource.xml" path="Type[@FullName='Microsoft.Maui.Controls.WebViewSource']/Docs/*" /> [TypeConverter(typeof(WebViewSourceTypeConverter))] public abstract class WebViewSource : BindableObject, IWebViewSource { public static implicit operator WebViewSource(Uri url) { return new UrlWebViewSource { Url = url?.AbsoluteUri }; } public static implicit operator WebViewSource(string url) { return new UrlWebViewSource { Url = url }; } protected void OnSourceChanged() { EventHandler eh = SourceChanged; if (eh != null) eh(this, EventArgs.Empty); } /// <include file="../../docs/Microsoft.Maui.Controls/WebViewSource.xml" path="//Member[@MemberName='Load']/Docs/*" /> [EditorBrowsable(EditorBrowsableState.Never)] public abstract void Load(IWebViewDelegate renderer); internal event EventHandler SourceChanged; private sealed class WebViewSourceTypeConverter : TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) => false; public override object ConvertTo(ITypeDescriptorContext context, CultureInfo cultureInfo, object value, Type destinationType) => throw new NotSupportedException(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) => sourceType == typeof(string) || sourceType == typeof(Uri); public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) => value switch { string str => (UrlWebViewSource)str, Uri uri => (UrlWebViewSource)uri, _ => throw new NotSupportedException(), }; } } }