停止覆盖矩形接收wpf点击事件

时间:2013-11-20 14:23:30

标签: c# wpf

我有一个不透明度为0的矩形,它覆盖了包含各种控件的网格。这个想法是这个矩形将淡入以隐藏某些点的背景控件。此刻,矩形覆盖了控件,因此您无法单击控件,因为单击将被矩形吸收。理想情况下,在动画开始之前完全禁用矩形的一些方法最好。

这是我所拥有的代码的缩减版本:

XAML:

<Grid>
    <Grid>
        <Label Content="Some text" />
        <Button Content="A button" Click="buttonClicked" />
    </Grid>

    <Rectangle x:Name="rectOverlay" Opacity="0" />
</Grid>

CS:

using System.Windows.Media.Animation;

private void buttonClicked(object sender, RoutedEventArgs e)
{
    rectOverlay.BeginAnimation(Rectangle.OpacityProperty, new DoubleAnimation(1, TimeSpan.FromSeconds(0.5)));
}

1 个答案:

答案 0 :(得分:1)

您可以将矩形的Visibility设置为Collapsed,这样就不会点击鼠标。您可以在Visible方法中将其重新设置为buttonClicked

以下是我的尝试:

XAML:

<Grid>
    <Grid>
        <Label Content="Some text" />
        <Button Content="A button" Click="ButtonBase_OnClick" />
    </Grid>

    <Rectangle x:Name="rectOverlay" Opacity="0" Fill="Green"/>
</Grid>

按钮点击代码:

rectOverlay.Visibility = Visibility.Visible;
rectOverlay.BeginAnimation(Rectangle.OpacityProperty, new DoubleAnimation(1, TimeSpan.FromSeconds(0.5)));