У меня есть заставка, в которую я хотел бы затухать, в то время как мое приложение отключается и что-то делает, а затем после завершения, если прошло определенное количество времени, закрывает заставку и загружает основной экран.Задержка после отображения экрана заставки, вызывающего проблемы
Проблема, которую я получаю, заключается в том, что, пока я зацикливаюсь, чтобы проверить, прошло ли время, она, похоже, не обрабатывает мою раскадровку, чтобы исчезнуть в заставке.
После прочтения, я думаю, я должен начинать всплеск на другой теме?
Heres код:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MySplashScreen splash = new MySplashScreen();
splash.Show();
Stopwatch sw = new Stopwatch();
sw.Start();
while (sw.Elapsed.TotalSeconds < 10)
{
}
splash.Close();
MainWindow mw = new MainWindow();
mw.Show();
}
}
Вопрос в том, когда я добавить анимацию. Это похоже на то, что он не применяет какой-либо процессор к выцветанию, потому что он застрял в цикле while.
<Window x:Class="Splash_Demo.MySplashScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="550" Width="900" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowStyle="None" ShowInTaskbar="False" Background="Transparent" AllowsTransparency="True" Opacity="0">
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="00:00:03" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Canvas Height="498" Width="839">
<Canvas.Background>
<ImageBrush ImageSource="C:\Users\Ash\Downloads\XactSplash.png"/>
</Canvas.Background>
<Label Canvas.Left="291" FontFamily="Algerian" Canvas.Top="413" Name="Customer" Height="43" Width="185" HorizontalContentAlignment="Left" VerticalContentAlignment="Center"/>
<Image Canvas.Left="500" Canvas.Top="165" Height="164" Name="image1" Stretch="Fill" Width="211" Source="C:\Users\Ash\Downloads\Zerix.bmp" />
<Label Canvas.Left="191" Canvas.Top="376" FontSize="8" Content="Label" Height="19" Name="lblYear" Width="30" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" />
</Canvas>
</Window>
Спасибо за это. Сможете ли вы опубликовать небольшой пример кода? – user589195
Также одна вещь, которую я, вероятно, должен был задать в моем вопросе, заключается в том, что я могу захотеть делать другие вещи, такие как предварительная загрузка dll, когда открыт вскрытый экран. – user589195
Сделайте это из фонового потока, если это возможно. – zmbq