Durante bastante tiempo, la extensión de marcado FontImageExtension se ha utilizado para mostrar íconos de fuentes dentro de los controles. Pero, como parte de las novedades de .NET 10 para .NET MAUI, esta extensión ahora está obsoleta, lo que significa que ya no deberías usarla en tus proyectos y deberías comenzar a prepararte para migrar a la nueva extensión recomendada.
Pero… ¿cuál es la extensión recomendada? 🤔
Ahora tenemos la extensión de marcado FontImageSource, la cual permite mostrar íconos igual que la extensión obsoleta, pero de una forma más clara y coherente.
Usar FontImageSource es muy sencillo, solo necesitas conocer las siguientes propiedades:
➖ Glyph: El símbolo del ícono.
➖ Color: El color del ícono.
➖ Size: El tamaño del ícono.
➖ FontFamily: La fuente que contiene el ícono (Por ejemplo: FontAwesome).
Y tienes dos maneras de implementarlo, como te muestro a continuación:
1️⃣ Sintaxis inline
Esta es una forma más directa y compacta, donde FontImageSource se define directamente como el valor de la propiedad ImageSource. Sin embargo, ten en cuenta que si necesitas definir múltiples propiedades/valores, puede volverse un poco más difícil de leer.
2️⃣ Sintaxis de elemento de propiedad
En esta opción expandida, en lugar de establecer el valor directamente en el atributo, debes abrir un bloque <Control.ImageSource>
. Por ejemplo, si estás trabajando con un Button, puedes agregar un bloque <Button.ImageSource>
y colocar dentro el FontImageSource.
Puede parecer mucho más largo porque requiere una estructura más detallada, pero es mucho más legible, especialmente cuando contiene varias propiedades.
¡Y eso es todo! 🎉 En solo unos minutos ya sabes cómo reaccionar cuando veas FontImageExtension
: simplemente reemplázalo por FontImageSource
. 😎
🙌 ¡Gracias por leer mi artículo!
Si tienes alguna pregunta, no dudes en dejarla en los comentarios. 💚💕
¡Nos vemos la próxima! 🙋♀️
Artículo en inglés
➖ https://askxammy.com/say-goodbye-to-the-fontimageextension-in-net-maui-%f0%9f%91%8b/
Referencias
Este artículo se basó en la documentación oficial: