2014-10-07 65 views
0

我有这样的代码(仅切割所需要的部分;这个码被用作一个用户控件):如何通过单击另一个元素来在一个元素的XAML中旋转?

<Grid> 
     <Image x:Name="im" HorizontalAlignment="Left" Height="120" Width="120"> 
      <Image.RenderTransform> 
       <RotateTransform Angle="0" CenterX="60" CenterY="60" /> 
      </Image.RenderTransform> 
     </Image> 
     <Button x:Name="br" Content="Right" Width="55"> 
      <Button.Triggers> 
       <EventTrigger RoutedEvent="MouseUp"> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetName="im" Storyboard.TargetProperty="RenderTransform.Angle" By="90" Duration="0:0:1" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </Button.Triggers> 
     </Button> 
    </Grid> 

我想通过点击“BR旋转90度的图像(“IM”) “按钮。此代码不起作用。
但是,如果我用这个代码:

<Grid> 
     <Image x:Name="im" HorizontalAlignment="Left" Height="120" Width="120"> 
      <Image.RenderTransform> 
       <RotateTransform Angle="0" CenterX="60" CenterY="60" /> 
      </Image.RenderTransform> 
      <Image.Triggers> 
       <EventTrigger RoutedEvent="MouseUp"> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetName="im" Storyboard.TargetProperty="RenderTransform.Angle" By="90" Duration="0:0:1" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </Image.Triggers> 
     </Image> 
     <Button x:Name="br" Content="Right" Width="55"> 
     </Button> 
    </Grid> 

旋转作品(图像,通过点击它旋转)。第一个有什么问题?

回答

1

您是否尝试了Button.Click路由事件而不是MouseUp。 MouseUp对按钮不起作用的原因在这里解释:Wpf event not bubbling

您提供的代码将在右键单击鼠标上工作。单击鼠标左键时,Click事件吞噬鼠标事件。

我试过下面的代码,它似乎工作。我使用了一个虚拟图像作为源。

<Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition></RowDefinition> 
      <RowDefinition></RowDefinition> 
     </Grid.RowDefinitions> 
     <Image x:Name="im" HorizontalAlignment="Left" Height="120" Width="120" Source="..\Images\info.png"> 
      <Image.RenderTransform> 
       <RotateTransform Angle="0" CenterX="60" CenterY="60" /> 
      </Image.RenderTransform> 
     </Image> 
     <Button x:Name="br" Grid.Row="1" Content="Right" Width="55"> 
      <Button.Triggers> 
       <EventTrigger RoutedEvent="Button.Click"> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetName="im" Storyboard.TargetProperty="RenderTransform.Angle" By="90" Duration="0:0:1" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </Button.Triggers> 
     </Button> 
    </Grid> 

如果您需要更多信息,请告知我。

相关问题