0

私は現在XAMLを持っています:

<Grid Name="WindowGrid">
    <Grid Height="66" HorizontalAlignment="Stretch" Margin="0" Name="ControlsGrid" VerticalAlignment="Bottom" Background="#B4000000" />
</Grid>

私が欲しいのは、マウスがウィンドウに入ると(またはできればWindowGridでも)、ControlGridが上にスライドし、その逆(カーソルが離れると下にスライドする)です。私は WPF/XAML の経験がほとんどなく、WinForms の経験がほとんどです。ストーリーボード/トリガーを使用してこれを行う方法があることは理解していますが、私が見た例は混乱しすぎています。

4

1 に答える 1

2

これを実行するには、イベント トリガーを使用します。

<Grid Name="WindowGrid">

    <Grid.Triggers>
        <EventTrigger RoutedEvent="MouseEnter">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation 
                        Storyboard.TargetName="ControlsGrid" 
                        Storyboard.TargetProperty="(Grid.Height)"
                        From="0" 
                        To="66" 
                        Duration="0:0:0.5" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
        <EventTrigger RoutedEvent="MouseLeave">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation 
                        Storyboard.TargetName="ControlsGrid"
                        Storyboard.TargetProperty="(Grid.Height)"
                        From="66" 
                        To="0" 
                        Duration="0:0:0.5" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Grid.Triggers>

    <!-- 
        This is a sample content to demostrate animation;
        Without it 'WindowGrid' will be collapsed.
    -->
    <ListBox />

    <Grid Margin="0" Name="ControlsGrid" VerticalAlignment="Bottom" Background="#B4000000" />
</Grid>
于 2012-06-04T06:16:33.043 に答える