WPF事件触发器无法正常工作

时间:2013-01-22 12:51:59

标签: wpf events animation button triggers

我是编程新手(更改区域,离开设计),对WPF非常感兴趣。 所以我正在学习并做一些代码。 在这一个中,我试图创建一个“不可见”网格(gridNovoCliente,opacity = 0)以显示按钮单击事件(opacity = 1)及其所有元素。 在用户点击按钮之前,我希望网格/元素不可见。

但它不起作用。 我一直在谷歌搜索它3天,然后决定在这里发布。 我收到错误'Set property'System.Windows.Media.Animation.Storyboard.Target'抛出异常。'在EventTrigger线上。

一旦我将这个按钮工作,会有更多的按钮,所以我创建了一个样式。 提前致谢! 这是代码。

<Grid>
        <Button Style="{StaticResource templateButton}" Name="novoCliente" Content="Novo&#xa;Cliente" Margin="20,41,0,598" TextBlock.TextAlignment="Center">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.Target="gridNovoCliente"
                                         Storyboard.TargetProperty="Opacity"
                                         From="0"
                                         To="1"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>

    <Grid Height="705" HorizontalAlignment="Left" Margin="131,12,0,0" Name="gridNovoCliente" VerticalAlignment="Top" Width="859" Background="#FF6FAA6F" Opacity="0">
        <TextBox Height="70" HorizontalAlignment="Left" Margin="270,250,0,0" Name="textBox1" VerticalAlignment="Top" Width="358" />
    </Grid>
</Grid>

1 个答案:

答案 0 :(得分:3)

    <Canvas>
        <Button  Name="novoCliente" Content="Novo&#xa;Cliente"  Margin="20,41,0,598" TextBlock.TextAlignment="Center">
        <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click" >
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="gridNovoCliente"
                                     Storyboard.TargetProperty="Opacity"
                                     From="0"
                                     To="1"/>
                        </Storyboard>
                    </BeginStoryboard>
               </EventTrigger.Actions> 

            </EventTrigger>
        </Button.Triggers>
    </Button>

    <Grid Height="705" HorizontalAlignment="Left" Margin="131,12,0,0" Name="gridNovoCliente" VerticalAlignment="Top" Width="859" Background="#FF6FAA6F" Opacity="0">
        <TextBox Height="70" HorizontalAlignment="Left" Margin="270,250,0,0" Name="textBox1" VerticalAlignment="Top" Width="358" />
    </Grid>
    </Canvas>

这很简单,请尝试上面的xaml,它对我有用。感谢