2010-09-21 5 views
1

J'essaie au port System.Drawing: LinearGradientBrush public ( rect Rectangle, Couleur color1, Couleur couleur2, float angle ) à System.Windows.Media. Je peux obtenir l'angle correct, mais je ne peux pas obtenir le début et la fin des virages. J'ai essayé de redimensionner la transformation de la brosse, mais cela finit par gâcher l'angle.Comment faire pour convertir un System.Drawing.Drawing2D.LinearGradientBrush en System.Windows.Media.LinearGradientBrush?

alt text

System.Drawing.Drawing2D.LinearGradientBrush: http://msdn.microsoft.com/en-us/library/ms142563.aspx

System.Windows.Media.LinearGradientBrush: http://msdn.microsoft.com/en-us/library/ms602517.aspx

Répondre

0

Je calcule mes points de départ et de fin en utilisant l'intersection de l'axe du gradient (ligne rouge) et de la ligne (bleu) perpendiculaire à l'axe du gradient qui coupe également un coin du rectangle.

alt text

+1

Est-ce une réponse ou plus de détails? Si c'est plus de détails, vous pouvez éditer votre message pour ajouter les détails supplémentaires là et ensuite supprimer cette réponse. –

1

Les coins sont bons, la correction gamma semble différent. Le WPF LinearGradientBrush a en effet une propriété GammaCorrection. Joue avec.

0

Je crois que le point où vous choisissez le dégradé à commencer sera effectivement où le centre du gradient est si vous utilisez System.Drawing.Drawing2D. Je peux me tromper, mais ça ressemble à System. utilisent le début du gradient à ce point au lieu du centre qui semble conduire à un léger décalage.

Questions connexes