如何在 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 事件以解决问题。
我正在尝试在我的 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 事件以解决问题。