2014-10-07 67 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> 

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

相關問題