Ho una png che contiene regioni trasparenti e l'ho impostata sul tag immagine, ma come posso posizionare il cursore su una mano quando si trova su una parte opaca dell'immagine?Cursore WPF su un'immagine parzialmente trasparente
Grazie Tony
Ho una png che contiene regioni trasparenti e l'ho impostata sul tag immagine, ma come posso posizionare il cursore su una mano quando si trova su una parte opaca dell'immagine?Cursore WPF su un'immagine parzialmente trasparente
Grazie Tony
Per fare questo è necessario guardare la bitmap stessa. Il meccanismo di test di successo di WPF considera qualsiasi pixel dipinto con un pennello "trasparente" per essere ancora cliccabile anche se invisibile. Questa è normalmente una buona cosa ma interferisce con ciò che stai cercando di fare. Dato che un .png dipinge con il pennello trasparente, l'intero file .png viene considerato come dipinto quando si esegue il test dei colpi.
Quello che dovete fare nel vostro gestore di eventi MouseMove
è:
HitTestResult
torni, controllare per vedere se si tratta di un Image
e in caso affermativo, se un pixel trasparente è sotto il mouseCursor
base a ciò il mouse è sopraPer determinare se un mouse è sopra un pixel trasparente di un'immagine:
e.GetPosition(image)
)BitmapSource.CopyPixels
per copiare un recta 1 pixel ngle in un array (es. solo il singolo pixel del mouse si trova sopra)
Questo è più o meno quello che ho fatto e funziona brillantemente. – TWith2Sugars