2015-08-22 2 views
0

Я новичок в WPF, и я пытаюсь создать анимацию для выбора и отмены выбора элемента табуляции в элементе управления вкладками с помощью стиля.Вращение TabItem WPF

К сожалению, это не сработает, и я не знаю почему. Что плохого в этом стиле:

<Style TargetType="{x:Type TabItem}" x:Key="MainTabControlItems"> 
     <Style.Setters> 
      <Setter Property="HorizontalAlignment" Value="Stretch"></Setter> 
      <Setter Property="Margin" Value="2"></Setter> 
      <Setter Property="VerticalAlignment" Value="Stretch"></Setter> 
      <Setter Property="BorderThickness" Value="2"></Setter> 
     </Style.Setters> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="true"> 
       <Setter Property="FontWeight" Value="Bold" /> 

       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetProperty="(TabItem.RenderTransform).(RotateTransform.Angle)" 
              To="30" Duration="0:0:5"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
      </Trigger> 
      <Trigger Property="IsSelected" Value="false"> 
       <Setter Property="FontWeight" Value="Normal" /> 

       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation Storyboard.TargetProperty="(TabItem.RenderTransform).(RotateTransform.Angle)" To="-30" Duration="0:0:5"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
      </Trigger>   
     </Style.Triggers> 
    </Style> 

<TabControl Name="tcAplabet" 
        SizeChanged="tcAplabet_SizeChanged" SelectionChanged="tcAplabet_SelectionChanged" 
        Grid.Column="0" 
        Grid.Row="0" 
        TabStripPlacement="Left" 
        ItemContainerStyle="{DynamicResource ResourceKey=MainTabControlItems}"> 

      <TabItem Header="A" IsSelected="True" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="B" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="C" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="D" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="E" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="F" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="G" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="H" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="CH" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="I" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="J" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="K" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="L" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="M" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="N" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="O" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="P" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="Q" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="R" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="S" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="T" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="U" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="V" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="W" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="X" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="Y" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 
      <TabItem Header="Z" Style="{DynamicResource ResourceKey=MainTabControlItems}" /> 

      <TabControl.ContentTemplate> 
       <DataTemplate> 
        <controls:MainTabContent Name="cMainTabContent" Margin="2"></controls:MainTabContent> 
       </DataTemplate> 
      </TabControl.ContentTemplate> 

     </TabControl> 

Спасибо за советы ...

+0

LayoutTransform, а не RenderTransform. наслаждаться. –

+0

Спасибо, но если ia изменится на it isnt work – Davecz

+0

Я думал, что это были просто нежелательные результаты. Я предполагаю, что ваша анимация не запускается вообще ... –

ответ

1

Проблема экземпляр RenderTransform не был создан для TabItem. Он применяет анимацию на нулевом объекте и проглатывает любое исключение, возникающее из этого.

Добавьте это к вашему стилю:

<Setter Property="RenderTransform"> 
    <Setter.Value> 
     <TransformGroup> 
      <RotateTransform /> 
      <TranslateTransform /> 
      <SkewTransform /> 
      <ScaleTransform />         
     </TransformGroup> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> 

* Кроме того, вы можете установить RenderTransformOrigin в центре вашего Tabtem, чтобы не поворачивать на левый верхний угол его (если это не то, что вы мужчины. 't to do)