| File: Hosting\Fonts\FontCollectionExtensions.cs | Web Access |
| Project: src\src\Core\src\Core.csproj (Microsoft.Maui) |
#nullable enable using System; using System.Reflection; namespace Microsoft.Maui.Hosting { public static class FontCollectionExtensions { /// <summary> /// Adds the font specified in <paramref name="filename"/> to the <paramref name="fontCollection"/>, with an optional font alias specified in <paramref name="alias"/>. /// </summary> /// <param name="fontCollection">The collection to add the font to.</param> /// <param name="filename">The filename of the font to add, such as a True type format (TTF) or open type font (OTF) font file. Font files can be added to the 'Resources\Fonts' of a .NET MAUI project.</param> /// <param name="alias">An optional alias that can also be used to reference this font.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">The <paramref name="filename"/> parameter is <c>null</c>.</exception> /// <exception cref="ArgumentException">The <paramref name="filename"/> parameter is empty or only whitespace.</exception> public static IFontCollection AddFont(this IFontCollection fontCollection, string filename, string? alias = null) { _ = filename ?? throw new ArgumentNullException(nameof(filename)); if (string.IsNullOrWhiteSpace(filename)) throw new ArgumentException("Filename was not a valid file name.", nameof(filename)); fontCollection.Add(new FontDescriptor(filename, alias, null)); return fontCollection; } /// <summary> /// Adds the font specified in <paramref name="filename"/> from an embedded resource in <paramref name="assembly"/> to the <paramref name="fontCollection"/>, with an optional font alias specified in <paramref name="alias"/>. /// </summary> /// <param name="fontCollection">The collection to add the font to.</param> /// <param name="assembly">The assembly that contains the specified font as an embedded resource.</param> /// <param name="filename">The embedded resource filename of the font to add, such as a True type format (TTF) or open type font (OTF) font file.</param> /// <param name="alias">An optional alias that can also be used to reference this font.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">The <paramref name="filename"/> parameter is <c>null</c>. -or- The <paramref name="assembly"/> parameter is <c>null</c>.</exception> /// <exception cref="ArgumentException">The <paramref name="filename"/> parameter is empty or only whitespace.</exception> public static IFontCollection AddEmbeddedResourceFont(this IFontCollection fontCollection, Assembly assembly, string filename, string? alias = null) { _ = assembly ?? throw new ArgumentNullException(nameof(assembly)); _ = filename ?? throw new ArgumentNullException(nameof(filename)); if (string.IsNullOrWhiteSpace(filename)) throw new ArgumentException("Filename was not a valid file name.", nameof(filename)); fontCollection.Add(new FontDescriptor(filename, alias, assembly)); return fontCollection; } } }