我对 WPF 真的很陌生,所以如果你也能指点我的教程,我会很高兴:)

这是我的货币代码:

<Grid Name="Grid">
    <local:Card Loaded="Card_Loaded"
                x:Name="MyCard">
        <local:Card.Triggers>
            <EventTrigger RoutedEvent="local:Card.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="MyCard"
                                         Storyboard.TargetProperty="Opacity"
                                         From="1.0"
                                         To="0.0"
                                         Duration="0:0:5"
                                         AutoReverse="True"
                                         RepeatBehavior="Forever" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </local:Card.Triggers>
    </local:Card>
</Grid>

local:Card 是一个 UserControl

这就是为什么我使用 x:Name="" 而不是 Name="" :
Because 'MS.Internal.Design.Metadata.ReflectionTypeNode' is implemented in the same assembly, you must set the x:Name attribute rather than the MS.Internal.Design.Metadata.ReflectionPropertyNode attribute.

我可以看到卡片和所有东西,但动画不起作用 =\

这是卡片 XAML:
<UserControl.Resources>
    <x:Array Type="{x:Type s:String}"
             x:Key="src">
        <s:String>Foo</s:String>
    </x:Array>
    <DataTemplate x:Key="frontTemplate">
        <Grid Background="Transparent">
            <Image Source="Images\Card.jpg" />
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="backTemplate">
        <GroupBox Header="Back"
                  Background="White">
            <StackPanel>
                <RadioButton Content="This"
                             IsChecked="True" />
                <RadioButton Content="Is" />
                <RadioButton Content="The" />
                <RadioButton Content="Back" />
            </StackPanel>
        </GroupBox>
    </DataTemplate>
</UserControl.Resources>
<ScrollViewer>
    <ItemsControl Width="180"
                  Height="250"
                  ItemsSource="{StaticResource src}"
                  ItemTemplate="{StaticResource flipItemTemplate}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</ScrollViewer>

最佳答案

我完全复制了您的 XAML 并在窗口中运行它。我所做的唯一更改是用 TextBlock 替换 local:Card 对象(因为我没有 Card 用户控件)。动画完美运行。

所以要么你的 local:Card 对象有一些奇怪的东西,不允许动画工作,要么在这一行的 Loaded="Card_Loaded" 方法:

<local:Card Loaded="Card_Loaded" x:Name="MyCard">

正在干扰事件触发器:
<EventTrigger RoutedEvent="local:Card.Loaded">

关于c# - WPF UserControl 动画不起作用..?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6767164/

10-15 03:11