Saltar al contenido

¿Cómo configurar ImageSource como Xamarin.Forms.Button?

Te sugerimos que revises esta solución en un ambiente controlado antes de pasarlo a producción, un saludo.

Solución:

ImageSource.FromStream () devuelve un StreamImageSource (ver documentos). Button.Image acepta solo FileImageSource (ver documentos).

Significa que lo que estás tratando de lograr no funcionará, no importa cuánto intentes mezclar uno con el otro.

Button.Image aceptará imágenes almacenadas como recursos en sus proyectos de plataforma y cargadas con:

Icon.Image = ImageSource.FromFile ("foobar.png");

o

Icon.Image = "foobar.png";

La respuesta aceptada es true que no puedes emitirStreamImageSource para FileImageSourcecreo que la verdadera pregunta es cómo compartir imágenes en un PCL y usarlas en un botón, tal como se haría al crear un Image control de formularios.

La respuesta es tener un Grid que contiene tanto un Button y un Image objeto, donde el Image se superpone a la Button.

Por ejemplo, el código C# podría verse así:

ImageSource imageSource = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));

Button iconButton = new Button ();
iconButton.VerticalOptions = LayoutOptions.FillAndExpand;
iconButton.HorizontalOptions = LayoutOptions.FillAndExpand;

var image = new Image();
image.Source = imageSource;
// So it doesn't eat up clicks that should go to the button:
image.InputTransparent = true;
// Give it a margin so it doesn't extend to the edge of the grid
image.Margin = new Thickness(10);

var grid = new Grid();
// If we don't set a width request, it may stretch horizontally in a stack
grid.WidthRequest = 48;
// Add the button first, so it is under the image...
grid.Children.Add(iconButton);
// ...then add the image
grid.Children.Add(image);

Es posible que tenga que jugar con los tamaños y los valores de grosor, pero esto debería generarle un botón en el que se puede hacer clic con un ícono.

A partir de Xamarin.Forms 3.4.0, ahora puede usar ImageButton. Puede usar imágenes incrustadas usando un método de extensión explicado en este documento de MS

Reseñas y valoraciones del post

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *