2010-05-06 2 views
1

J'essaye de dessiner un cercle avec un effet de verre en utilisant Alpha. Je réussis à créer cela en utilisant le XAML ci-dessous. Le curseur se transforme en Hand pour les Ellipses, mais cela n'affecte pas Path. Fondamentalement, je veux montrer le curseur "main" partout où la souris apparaît sur le cercle. J'espère que ce n'est pas un problème connu et qu'il me manque quelque chose de petit. Toute aide est vraiment appréciée.Curseur sur le chemin n'apparaît pas dans SilverLight


<Ellipse Cursor="Hand" 
    Width="200" 
    Height="200" 
    Fill="#C42222" Canvas.Left="0" Canvas.Top="0" /> 

<Ellipse Cursor="Hand" Width="200" Height="200" Canvas.Left="0" Canvas.Top="0"> 
    <Ellipse.Fill> 
     <RadialGradientBrush GradientOrigin="0.3,0.7"> 
      <GradientStop 
       Offset="0" 
       Color="#00000000" /> 
      <GradientStop 
       Offset="1" 
       Color="#66000000" /> 
     </RadialGradientBrush> 
    </Ellipse.Fill> 
</Ellipse> 

<Path Cursor="Hand" Stretch="Fill" Height="114.598" Width="198.696" Data="M98.388435,-1.3301961 C98.388435,-1.3301961 117.1151,-3.094949 141.69321,8.1370029 C156.42262,14.868201 167.67375,23.694145 175.66234,33.657074 C183.67349,43.648144 181.90166,37.8708 191.90166,58.8708 C201.90166,79.870796 199.16658,89.212738 199.13568,92.90377 C198.77556,135.92146 175.45959,97.59124 156.75465,81.024025 C140.98892,67.060104 117.41241,64.357407 114.41241,64.357407 C111.4124,64.357407 83.061241,60.114159 63.061195,71.114143 C43.061146,82.114136 39.637829,86.429352 22.999804,100.99996 C6.5005584,115.44904 2.9997537,112.99996 2.9997537,112.99996 C2.9997537,112.99996 -1.1832786,97.194221 1.9997513,81.999893 C7.2054667,57.150185 13.999762,47.999939 17.999771,42.999943 C21.999781,37.99995 29.935833,23.400871 54.053131,10.21261 C78.91642,-3.3835876 98.388435,-1.3301961 98.388435,-1.3301961 z"> 
<Path.Fill> 
    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> 
    <GradientStop Color="#55FFFFFF" Offset="0"/> 
    <GradientStop Color="#11FFFFFF" Offset="0.5"/> 
    <GradientStop Color="#00FFFFFF" Offset="1"/> 
    </LinearGradientBrush> 
</Path.Fill> 
</Path> 

Répondre

0

Je veux montrer le curseur « main » où la souris apparaît au-dessus du cercle.

Le curseur de main apparaît dans mes tests de votre chemin lorsque la souris survole le chemin. Cependant, peut-être que l'indice pourrait être dans votre description ci-dessus. Le Chemin ne décrit pas un cercle plus comme un croissant. Ajoutez Stroke="Black" StrokeThickness="1" au chemin afin que vous puissiez voir son contour et tester que le curseur fonctionne réellement.

L'autre possiblité est dans votre Xaml actuel qu'il y a quelque chose d'autre qui a un index z élevé ou qui apparaît plus tard dans l'ordre des documents Xaml qui recouvre le chemin.

+0

Salut Anthony, merci pour votre contribution. En fait, j'ai utilisé Stroke = "Black" StrokeThickness = "10" et vérifié qu'il ne fonctionne même pas sur les bordures. Comme c'est un chemin fermé, je supposais que le curseur fonctionnerait sur ceci. Malheureusement, ce n'est pas le cas :( –

+0

@Rahul: Pour clarifier ce que j'ai déjà dit, je peux confirmer qu'il fonctionne au moins dans un test isolé (c'est-à-dire seul avec le UserControl). Je suggère que vous fassiez le même test pour confirmer que cela ne fonctionne toujours pas pour vous, même de façon isolée, ce qui établirait que quelque chose de vraiment génial se passe sur votre machine. – AnthonyWJones

+0

Merci Anthony, vous aviez raison, j'ai vérifié mon propre code de manière isolée et vous avez trouvé que vous étiez en train de le soupçonner correctement, j'avais un double chemin sans main, puisque les coordonnées étaient les mêmes. C'était un chevauchement de mon chemin qui avait un curseur Merci encore ... marqué comme une réponse. –

Questions connexes