如何在 WPF C# 中三秒后在两个视图之间移动?
How to move between two views after three seconds in WPF C#?
我目前正在做一个项目,我有一个图像,我想显示 3 秒,然后在 运行 的其余时间隐藏它并显示主网格。
我试图做的是将主网格放在子网格中,不透明度为 0 或可见性 = Visibility.Hidden,并在 public MainWindow( ) {} 方法。
当我尝试 if 语句:if (stopwatch.ElapsedMilliseconds > 3000) {Change Opacity} 时,我还没有达到条件并与第一个 window 叠加。当我尝试 while 方法时,通过简单地添加一个空的 while 循环,三秒钟没有显示任何内容,然后我立即看到了主网格。
怎样才能得到想要的结果?
提前致谢!
public MainWindow()
{
InitializeComponent();
ViewModel = (Application.Current as App).VM;
DataContext = ViewModel;
Dashboard.DataContext = ViewModel;
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
this.Loaded += new RoutedEventHandler(myMediaElement_MediaEnded);
TimeGrinder();
Page1.Opacity = 0;
MainGrid.Opacity = 100;
}
public void TimeGrinder()
{
var stopWatch = new Stopwatch();
stopWatch.Start();
while (stopWatch.ElapsedMilliseconds < 3000) { }
return;
}
可能有帮助:
using System.Threading;
...
private async void HideGrid()
{
Page1.Opacity = 0;
MainGrid.Opacity = 100;
await Task.Delay(3000);
//await Task.Run(() => Thread.Sleep(3000));
Page1.Opacity = 100;
MainGrid.Opacity = 0;
}
编辑为@aepot 建议
我目前正在做一个项目,我有一个图像,我想显示 3 秒,然后在 运行 的其余时间隐藏它并显示主网格。
我试图做的是将主网格放在子网格中,不透明度为 0 或可见性 = Visibility.Hidden,并在 public MainWindow( ) {} 方法。 当我尝试 if 语句:if (stopwatch.ElapsedMilliseconds > 3000) {Change Opacity} 时,我还没有达到条件并与第一个 window 叠加。当我尝试 while 方法时,通过简单地添加一个空的 while 循环,三秒钟没有显示任何内容,然后我立即看到了主网格。
怎样才能得到想要的结果?
提前致谢!
public MainWindow()
{
InitializeComponent();
ViewModel = (Application.Current as App).VM;
DataContext = ViewModel;
Dashboard.DataContext = ViewModel;
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
this.Loaded += new RoutedEventHandler(myMediaElement_MediaEnded);
TimeGrinder();
Page1.Opacity = 0;
MainGrid.Opacity = 100;
}
public void TimeGrinder()
{
var stopWatch = new Stopwatch();
stopWatch.Start();
while (stopWatch.ElapsedMilliseconds < 3000) { }
return;
}
可能有帮助:
using System.Threading;
...
private async void HideGrid()
{
Page1.Opacity = 0;
MainGrid.Opacity = 100;
await Task.Delay(3000);
//await Task.Run(() => Thread.Sleep(3000));
Page1.Opacity = 100;
MainGrid.Opacity = 0;
}
编辑为@aepot 建议