0

複数のタブを持つプロジェクトがあります。ユーザーがタブを選択したら、そのタブの内側にあるグリッドをスライドさせたいのですが。グリッドのマージンを変更することでそれを達成できると思います。私は実際に機能するソリューションを持っていますが、Blendの2つのDLLを含める必要があります。Blendを使わなくても同じ効果が得られると思いますが、わかりません。以下はストーリーボードとtabItemsxamlです

    <Storyboard x:Key="tabAdminSlide">
        <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="grid1">
            <EasingThicknessKeyFrame KeyTime="0" Value="400,0,0,0"/>
            <EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0,0,0,0">
                <EasingThicknessKeyFrame.EasingFunction>
                    <ExponentialEase EasingMode="EaseOut"/>
                </EasingThicknessKeyFrame.EasingFunction>
            </EasingThicknessKeyFrame>
        </ThicknessAnimationUsingKeyFrames>
    </Storyboard>

    <TabItem Header="Run as Admin" x:Name="tabAdmin" Background="LightBlue">
         <i:Interaction.Triggers>
             <ei:DataTrigger Binding="{Binding SelectedIndex, ElementName=tabControl}" Value="0">
                 <ei:ControlStoryboardAction Storyboard="{StaticResource tabAdminSlide}"/>
             </ei:DataTrigger>
         </i:Interaction.Triggers> 
            <Grid Height="Auto" x:Name="grid1" Width="Auto">
                <Grid.Background>
                    <LinearGradientBrush StartPoint="-0.002,0.498" EndPoint="1.084,0.498">
                        <GradientStop Color="LightBlue" Offset="0.446" />
                        <GradientStop Color="White" Offset="1" />
                    </LinearGradientBrush>
                </Grid.Background>
                <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="40,179,0,0" Name="button1" VerticalAlignment="Top" Width="75" Grid.ColumnSpan="2" />
            </Grid>
    </TabItem>

のように見えます

<i:Interaction.Triggers>
    <ei:DataTrigger Binding="{Binding SelectedIndex, ElementName=tabControl}" Value="0">
        <ei:ControlStoryboardAction Storyboard="{StaticResource tabAdminSlide}"/>
    </ei:DataTrigger>
</i:Interaction.Triggers> 

交換が必要な部品ですが、よくわかりません。どんな助けでも適用されます

ありがとう。

4

1 に答える 1

1

あなたが使用できるはずです

<TabItem.Triggers>
    <EventTrigger RoutedEvent="Selector.Selected">
        <BeginStoryboard Storyboard="{StaticResource tabAdminSlide}" />
    </EventTrigger>
</TabItem.Triggers>

それ以外の

<i:Interaction.Triggers>  
    <ei:DataTrigger Binding="{Binding SelectedIndex, ElementName=tabControl}" Value="0">  
        <ei:ControlStoryboardAction Storyboard="{StaticResource tabAdminSlide}"/>  
    </ei:DataTrigger>  
</i:Interaction.Triggers> 
于 2012-07-20T03:00:57.493 に答える