首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabItem旋转WPF

TabItem旋转WPF
EN

Stack Overflow用户
提问于 2015-08-22 19:59:33
回答 1查看 558关注 0票数 0

我在WPF中是新的,我试图通过使用样式在选项卡控件中的选择和取消选择选项卡项上创建动画。

不幸的是,它不工作,我不知道为什么。这种风格有什么问题:

代码语言:javascript
复制
<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>

谢谢你的建议..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-22 20:20:58

问题-- RenderTransform的一个实例--不是为您的TabItem创建的。它在空对象上应用动画,并吞咽由此产生的任何异常。

把这个添加到你的风格中:

代码语言:javascript
复制
 <Setter Property="RenderTransform">
     <Setter.Value>
         <TransformGroup>
             <RotateTransform />
             <TranslateTransform />
             <SkewTransform />
             <ScaleTransform />                                
         </TransformGroup>
      </Setter.Value>
  </Setter>
  <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>

*此外,您可能希望将RenderTransformOrigin设置在表的中心,因为它的左上角不旋转。(除非这是你们男人不想做的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32160224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档