如何使用 DoubleAnimation 处理同一窗口中两个网格的出现和消失?

发布于 2024-09-30 11:10:11 字数 3642 浏览 0 评论 0原文

我觉得我的问题标题有点乱!对不起!

我在同一个窗口中有两个网格。第一个名为 loginBox,第二个名为 operationBox。我想在验证用户后使用 DoubleAnimation 类消失 loginBox ,然后操作框将同时出现(在 00:00:01 期间)。

场景:

  1. 显示窗口时显示名为 loginBox 的网格。用户单击 btnLogin 后,loginBox 开始在其 Opacity 属性上使用 DoubleAnimation 消失,同时,操作框将使用相同的技术出现。

  2. 结束操作后,用户点击btnLogoutoperationBox开始消失,loginBox通过DoubleAnimation出现。< /p>

问题是因为 operationBox 网格超出了loginBox 网格,用户无法在 loginbox 中执行任何操作!然而 operationBox.Opacity=0 ;但是在启动时对 loginBox 网格没有任何作用!

代码:

<!--Login Box-->
        <Grid Background="Transparent" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center">
            <Button Content="ورود" Height="23" HorizontalAlignment="Left" Margin="344,199,0,0" Name="btnLogin" VerticalAlignment="Top" Width="75" IsDefault="True"
                    Click="btnLogin_Click" >
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <BeginStoryboard>                            
                            <Storyboard>                                
                                <DoubleAnimation 
                                    Storyboard.TargetName="loginBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="1" To="0" Duration="0:0:1" AutoReverse="False" />
                                <DoubleAnimation 
                                    Storyboard.TargetName="operationBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="0" To="1" Duration="0:0:1" AutoReverse="False" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
.
.
.
</Grid>

.
.
.

        <!--Operation Box-->
        <Grid Background="Transparent" Name="operationBox" Opacity="0" Visibility="Hidden">
...
            <Button Content="خروج" Height="23" 
                    HorizontalAlignment="Left" Margin="15,324,0,0" Name="btnLogout" 
                    VerticalAlignment="Top" Width="75" Click="btnLogout_Click">
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation 
                                    Storyboard.TargetName="operationBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="1" To="0" Duration="0:0:1" AutoReverse="False" />

                                <DoubleAnimation 
                                    Storyboard.TargetName="loginBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="0" To="1" Duration="0:0:1" AutoReverse="False" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
        </Grid>

最后,抱歉语法错误! :)

I think the title of my question is some mess! Sorry!

I have two Grid in same window. First named loginBox and second is operationBox. I want to disappear loginBox after validating user, using DoubleAnimation class and then operationBox will be appear in same time (during 00:00:01).

Scenario:

  1. Grid named loginBox is showing when window shown. After user clicked on btnLogin, loginBox start disappearing using DoubleAnimation on it's Opacity property and in same time, operationBox will be appear using same technique.

  2. After ending operation, user clicks on btnLogout and operationBox start disappearing and loginBox appearing by DoubleAnimation.

The problem is because operationBox grid is overloginBox grid, User can't do anything in loginbox! How ever operationBox.Opacity=0 ;but nothing can do with loginBox grid at start up!

CODE:

<!--Login Box-->
        <Grid Background="Transparent" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center">
            <Button Content="ورود" Height="23" HorizontalAlignment="Left" Margin="344,199,0,0" Name="btnLogin" VerticalAlignment="Top" Width="75" IsDefault="True"
                    Click="btnLogin_Click" >
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <BeginStoryboard>                            
                            <Storyboard>                                
                                <DoubleAnimation 
                                    Storyboard.TargetName="loginBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="1" To="0" Duration="0:0:1" AutoReverse="False" />
                                <DoubleAnimation 
                                    Storyboard.TargetName="operationBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="0" To="1" Duration="0:0:1" AutoReverse="False" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
.
.
.
</Grid>

.
.
.

        <!--Operation Box-->
        <Grid Background="Transparent" Name="operationBox" Opacity="0" Visibility="Hidden">
...
            <Button Content="خروج" Height="23" 
                    HorizontalAlignment="Left" Margin="15,324,0,0" Name="btnLogout" 
                    VerticalAlignment="Top" Width="75" Click="btnLogout_Click">
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation 
                                    Storyboard.TargetName="operationBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="1" To="0" Duration="0:0:1" AutoReverse="False" />

                                <DoubleAnimation 
                                    Storyboard.TargetName="loginBox"
                                    Storyboard.TargetProperty="(Grid.Opacity)" 
                                    From="0" To="1" Duration="0:0:1" AutoReverse="False" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
        </Grid>

and finally, Sorry for bad grammar! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

简单气质女生网名 2024-10-07 11:10:11

尝试添加操作Box.IsHitTestVisible =“False”

更新

尝试添加类似这样的内容

<Grid Grid.ZIndex="4" Background="Green" Opacity="0.4" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center">
    <Grid.Style>
        <Style>
            <Style.Triggers>
                <Trigger Property="Grid.Opacity" Value="0.0">
                    <Setter Property="Grid.IsHitTestVisible" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
<!-- ... -->

Try adding operationBox.IsHitTestVisible="False"

Update

Try to add something like this

<Grid Grid.ZIndex="4" Background="Green" Opacity="0.4" Name="loginBox" VerticalAlignment="Center" HorizontalAlignment="Center">
    <Grid.Style>
        <Style>
            <Style.Triggers>
                <Trigger Property="Grid.Opacity" Value="0.0">
                    <Setter Property="Grid.IsHitTestVisible" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
<!-- ... -->
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文