C# UWP StartBringIntoView在加载的页面中不工作

C# UWP StartBringIntoView在加载的页面中不工作,c#,uwp,win-universal-app,C#,Uwp,Win Universal App,我在另一页有3个BladeItems。我想从MainPage导航到该页面,并查看请求的BladeItem。但它不起作用 我最初认为这是因为页面尚未加载。所以我把它放进了加载的页面。然而,它现在仍在发挥作用。为什么呢 private void Page_Loaded(object sender, RoutedEventArgs e) { TitleBarHelper.SetDarkTitleBar(); Window.Current.SetTitle

我在另一页有3个
BladeItem
s。我想从
MainPage
导航到该页面,并查看请求的
BladeItem
。但它不起作用

我最初认为这是因为页面尚未加载。所以我把它放进了加载的页面。然而,它现在仍在发挥作用。为什么呢

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        TitleBarHelper.SetDarkTitleBar();
        Window.Current.SetTitleBar(AppTitleBar);
        UpdateTitleBarLayout(Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().TitleBar);

        FullMediaControl.Update();
        SetMusic(MediaHelper.CurrentMusic);
        FullPlaylistControl.ScrollToMusic(MediaHelper.CurrentMusic);

        if (MusicInfoRequestedWhenUnloaded)
        {
            MusicPropertyBladeItem.StartBringIntoView();
            MusicInfoRequestedWhenUnloaded = false;
        }
        else if (LyricsRequestedWhenUnloaded)
        {
            LyricsBladeItem.StartBringIntoView();
            LyricsRequestedWhenUnloaded = false;
        }
    }
源代码页是。可以使用右下角“更多”按钮的
菜单中的“显示歌词”或“音乐信息”项导航此页面


实际上,上面代码中的
FullPlayControl.ScrollToMusic
也不起作用。它只是滚动到
列表视图中的一行。我想它们可能是相同的原因。

这是的文档

根据文档中的说明,此方法仅在控件呈现在可视化树上时才可行,因此您需要在调用该方法时对其进行修改

如果希望
MusicPropertyBladeItem.StartBringIntoView()
工作,则需要在加载的
MusicPropertyBladeItem
事件中调用它。出于同样的原因,在加载
FullPlayControl
时,需要调用
ScrollToMusic

Page\u Loaded
仅表示页面已加载,但并不表示控件已呈现


最好的衣服。

谢谢。使用加载的事件适用于
BladeItem
s。但它似乎不适用于
ScrollToMusic
,可能是因为我使用了
ListView.ScrollIntoView
?嗨,
ScrollToMusic
应该是您自己的方法,本质上是
ListView.ScrollIntoView()
。因此,您需要在
ListView.Loaded
事件中调用它。是的,它在
Loaded
事件中,但仍然不工作。您可以从底部的代码中看到,我认为您可以调试并查看
ListView\u Loaded
中的
scrolltomusicrequestedwhenunload
是否为
null
。但不排除渲染过程中可能出现的异常。毕竟,
ScrollIntoView
不会返回值,也不会报告错误。我创建了一个新的ListView并生成了200个条目。在ListView.Loaded事件中,我可以成功调用
ScrollIntoView
。您还可以创建一个新项目进行测试。它不是null,但我发现
SongsListView.ContainerFromItem(ScrollTomusicRequestedWhenUnload)
给我null。它似乎找不到它,但我确实在
列表视图中找到了它。为什么?