Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中,为什么我的;“内容已更改”;自定义路由事件仅在内容在帧外更改时有效?_C#_Wpf_Xaml_Routed Events - Fatal编程技术网

C# 在WPF中,为什么我的;“内容已更改”;自定义路由事件仅在内容在帧外更改时有效?

C# 在WPF中,为什么我的;“内容已更改”;自定义路由事件仅在内容在帧外更改时有效?,c#,wpf,xaml,routed-events,C#,Wpf,Xaml,Routed Events,我有一个自定义的框架类: public class cstmFrame : Frame { public static readonly RoutedEvent ContentChangedEvent = EventManager.RegisterRoutedEvent("ContentChanged", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(cstmFrame)); public event Ro

我有一个自定义的
框架
类:

public class cstmFrame : Frame
{
    public static readonly RoutedEvent ContentChangedEvent = EventManager.RegisterRoutedEvent("ContentChanged", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(cstmFrame));

    public event RoutedEventHandler ContentChanged
    {
        add { AddHandler(ContentChangedEvent, value); }
        remove { RemoveHandler(ContentChangedEvent, value); }
    }

    protected override void OnContentChanged(object oldContent, object newContent)
    {
        base.OnContentChanged(oldContent, newContent);
        RaiseEvent(new RoutedEventArgs(ContentChangedEvent, this));
    }
}
每当内容更改时,我都会触发动画:

<EventTrigger RoutedEvent="local:cstmFrame.ContentChanged">
    <BeginStoryboard Storyboard="{StaticResource stbFadePageIn}" />
</EventTrigger>
注意:之前,我使用了
FrameName.content=new Page1();
,但两者都适用于我)

当我试图从其中一个页面内切换页面时,问题就出现了。因此,例如,如果我在
Page1
内,并且我想导航到
Page2
,我使用以下代码,它可以工作,但动画没有启动:

NavigationService.Navigate(new Page2());
我有两个问题:

  • 我的代码有什么问题
  • 我怎样才能修好它

  • 谢谢。

    创建一个样本来重现问题有点懒散。如果可能的话,你能做到吗@戈皮坎达尔-我不知道如何。。。你还能帮我吗?
    NavigationService.Navigate(new Page2());