GoToStateAction をイベントハンドラから呼ぶ


<Window
    xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
    xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
    xmlns:local=”clr-namespace:WpfApplication1″ xmlns:i=”http://schemas.microsoft.com/expression/2010/interactivity” xmlns:ei=”http://schemas.microsoft.com/expression/2010/interactions”
    x:Class=”WpfApplication1.MainWindow”
    x:Name=”Window”
    Title=”MainWindow”
    Width=”640″ Height=”480″ MouseLeftButtonDown=”Window_MouseLeftButtonDown” MouseRightButtonDown=”Window_MouseRightButtonDown”>
    <Window.Triggers>
        <EventTrigger RoutedEvent=”Mouse.MouseDown”/>
    </Window.Triggers>

    <Grid x:Name=”LayoutRoot”>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name=”VisualStateGroup”>
                <VisualState x:Name=”MenuIn”>
                    <Storyboard>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty=”(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)” Storyboard.TargetName=”myMenu”>
                            <EasingDoubleKeyFrame KeyTime=”0″ Value=”-482″/>
                            <EasingDoubleKeyFrame KeyTime=”0:0:1″ Value=”-30″/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                <VisualState x:Name=”MenuOut”>
                    <Storyboard>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty=”(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)” Storyboard.TargetName=”myMenu”>
                            <EasingDoubleKeyFrame KeyTime=”0″ Value=”29″/>
                            <EasingDoubleKeyFrame KeyTime=”0:0:1″ Value=”-471″/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <local:MyMenu x:Name=”myMenu” Margin=”87,74,112,66″ RenderTransformOrigin=”0.5,0.5″>
            <local:MyMenu.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </local:MyMenu.RenderTransform>
        </local:MyMenu>
        <Button x:Name=”button” Content=”button” HorizontalAlignment=”Left” Height=”34″ Margin=”21,19,0,0″ VerticalAlignment=”Top” Width=”109″ RenderTransformOrigin=”0.5,0.5″>
            <Button.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </Button.RenderTransform>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName=”Click”>
                    <ei:GoToStateAction StateName=”MenuIn”/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>
    </Grid>
</Window>

この時、次のように呼び出せる。

private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    this.MenuIn.Storyboard.Begin((FrameworkElement)sender);
}

private void Window_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    this.MenuOut.Storyboard.Begin((FrameworkElement)sender);
}

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。