views:

27

answers:

1

I am trying to draw a circle with a glass effect using Alpha. I am successful in creating that by using the below XAML. The cursor changes to Hand for the Ellipses, but it doesn't affect Path. Basically, I want to show "hand" cursor wherever the mouse appears over the circle. I hope this is not a known issue and I am missing something small. Any help is really appreciated.


<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>
A: 

I want to show "hand" cursor wherever the mouse appears over the circle.

The hand cursor appears in my testing of your Path when the mouse is over the path. However perhaps the clue might be in your description above. The Path doesn't describe a circle more like a crescent. Add Stroke="Black" StrokeThickness="1" to the path so that you can see its outline and test that the cursor does actually work.

The other possiblity is in your actual Xaml that there is something else that has a hight z-index or appears later in the Xaml document order that overlays the Path.

AnthonyWJones
Hi Anthony, thanks for your input. In fact, I have used Stroke="Black" StrokeThickness="10" and verified that it doesn't even work on the borders. Since this is a closed path, I was assuming that the cursor will work on this. Unfortunately, it doesn't :(
Rahul Soni
@Rahul: To make it clear what I've already said. I can confirm that it does work at least in an isolated test (that is on its own with nothing else in the UserControl). I would suggest that you do the same test to confirm that it still doesn't work for you even in isolation. That would establish that something really funky is happening on your machine. I suspect you'll find that it does work and that in your actual usage there is something else involved.
AnthonyWJones
Thanks Anthony! You were right, I checked my own code in isolation and found that you were suspecting correctly. I had a duplicate path with no hand. Since the co-ordinates were same... it was overlapping my path which had a cursor. Thanks again... marked it as an answer.
Rahul Soni