如何在 Uno WASM 中创建幻灯片放映?

How to create slide show in Uno WASM?

我正在尝试在我的 Uno 应用程序中创建一个简单的幻灯片。我在 UWP 中工作,但在 WASM 中失败。我的代码如下所示:

public void SlideShowPageLoaded(object sender, RoutedEventArgs args)
{          
    vm.URL = vm.SlideList[CurrentIndex].URL;
    timer = new DispatcherTimer();
    timer.Tick += dispatcherTimer_Tick;
    timer.Interval = new TimeSpan(0, 0, this.Interval);
    timer.Start();
} 

private void dispatcherTimer_Tick(object sender, object e)
{
    this.GetNextIndex();
    try
    {
        vm.URL = vm.SlideList[CurrentIndex].URL;
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }            
}

当页面加载时,我为图像设置 URL,然后创建一个 DispatchTimer。 Tick 事件只是更改 URL。图片 xaml 看起来像:

<Image x:Name="imageControl" Source="{Binding URL, Mode=OneWay}" />  

这在 UWP 中工作正常,在 WASM 中没有任何反应。我猜不支持 DispatchTimer?我可以使用其他选项吗?

问题已解决。我最初提供的信息不完整。 SlideShowPage 由 Frame.Navigate 创建。在 UWP 实现中,UWP 首先调用 OnNavigateTo 事件,然后调用 SlideShowPageLoaded。在 WASM 上,SlideShowPageLoaded 在 OnNavigateTo 事件处理程序之前被调用,因此数据没有被初始化。

我重新配置调用以在 OnNavigateTo 处理程序中初始化我的数据并忽略 SlideShowPageLoaded 事件以解决问题。