2016-05-10 2 views
1

J'essaie d'utiliser SkiaSharp dans Xamarin.forms pour dessiner des polygones au-dessus d'une image. L'image est téléchargée à partir d'un serveur et mise en cache en arrière-plan. Je préfère donc ne pas manipuler l'image elle-même et dessiner une nouvelle toile et la placer dans une nouvelle vue sur le dessus de l'image, comme dans les captures d'écran. (en utilisant la disposition relative) Comme vous pouvez également le voir sur les captures d'écran, placer le rectangle n'est pas le problème mais la partie "transparente" n'est pas vraiment transparente.Parties transparentes dans Skia View

Code de la première capture d'écran:

using (var paint = new SKPaint()) { 
    paint.IsAntialias = true; 
      using (var path = new SKPath()) { 
       path.MoveTo (0f, 0f); 
       path.LineTo (width, height); 
       path.LineTo (0, width); 
       path.Close(); 

       paint.Color = SKColors.Orange; 
       canvas.DrawPath (path, paint); 

      } 
     } 

Dans la seconde, j'ai essayé d'utiliser

  canvas.Clear(SKColors.Transparent); 

mais il ne change au fond noir.

Est-ce que quelqu'un sait s'il est possible d'avoir des parties complètement transparentes dans une vue skia?

+0

Personne ne une idée? Ou tout simplement pas possible? – Chris

Répondre

5

Votre question m'a aidé à résoudre aujourd'hui:

Outre le réglage de la toile couleur transparente, les contenant Xamarin Forms élément doit être transparent aussi!

C#
canvas.Clear(SKColors.Transparent);

XAML
<views:SKCanvasView ... BackgroundColor="Transparent" />

+0

Hey ça fait plaisir d'entendre ... Je me battais depuis longtemps et puis abandonné ... mais je vais certainement essayer votre approche ... semble trop facile à travailler correctement ;-) – Chris

+0

Vous avez sauvé ma journée! J'apprécie beaucoup –