- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WPF 项目,其中有一个由项目向导添加的启动屏幕。在同一个启动屏幕上,我想添加一个进度条样式仪表。有人知道如何做到这一点吗?
最佳答案
这是我的计划。我这样做的动机是我不想在 UI 线程上运行初始化代码,通常我希望在我的 App 类(而不是启动屏幕)上运行初始化代码。
基本上,我将应用 StartupUri
设置为我的启动屏幕,这样就可以开始工作了。
在启动屏幕上,我调用应用程序上的委托(delegate)。这是在工作线程上运行的。在启动屏幕中,我处理 EndInvoke
,并关闭窗口。
在应用程序初始化委托(delegate)中,我完成工作,最后创建并打开正常的主窗口。在工作期间,我在 Slash 上还有一个方法可以让我更新进度。
好的,代码相当短,并且不包括主窗口代码(不受所有这些影响),但它会与匿名委托(delegate)一起躲避和潜水,所以请仔细阅读它,最好在调试器。
这是代码......
<Application x:Class="SplashScreenDemo.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Splash.xaml">
<Application.Resources>
</Application.Resources>
</Application>
应用程序代码背后...
internal delegate void Invoker();
public partial class App : Application
{
public App()
{
ApplicationInitialize = _applicationInitialize;
}
public static new App Current
{
get { return Application.Current as App; }
}
internal delegate void ApplicationInitializeDelegate(Splash splashWindow);
internal ApplicationInitializeDelegate ApplicationInitialize;
private void _applicationInitialize(Splash splashWindow)
{
// fake workload, but with progress updates.
Thread.Sleep(500);
splashWindow.SetProgress(0.2);
Thread.Sleep(500);
splashWindow.SetProgress(0.4);
Thread.Sleep(500);
splashWindow.SetProgress(0.6);
Thread.Sleep(500);
splashWindow.SetProgress(0.8);
Thread.Sleep(500);
splashWindow.SetProgress(1);
// Create the main window, but on the UI thread.
Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Invoker)delegate
{
MainWindow = new Window1();
MainWindow.Show();
});
}
}
splash xaml
(实际上,这里没有什么太有趣的......)
<Window x:Class="SplashScreenDemo.Splash"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Splash" Height="300" Width="300">
<Grid>
<TextBlock Height="21" Margin="91,61,108,0" VerticalAlignment="Top">Splash Screen</TextBlock>
<ProgressBar Name="progBar" Margin="22,122,16,109" Minimum="0" Maximum="1"/>
</Grid>
</Window>
启动代码隐藏...
public partial class Splash : Window
{
public Splash()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Splash_Loaded);
}
void Splash_Loaded(object sender, RoutedEventArgs e)
{
IAsyncResult result = null;
// This is an anonymous delegate that will be called when the initialization has COMPLETED
AsyncCallback initCompleted = delegate(IAsyncResult ar)
{
App.Current.ApplicationInitialize.EndInvoke(result);
// Ensure we call close on the UI Thread.
Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Invoker)delegate { Close(); });
};
// This starts the initialization process on the Application
result = App.Current.ApplicationInitialize.BeginInvoke(this, initCompleted, null);
}
public void SetProgress(double progress)
{
// Ensure we update on the UI Thread.
Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Invoker)delegate { progBar.Value = progress; });
}
}
由于工作是在工作线程上完成的,进度条会很好地更新,并且启动屏幕上的任何动画都会让娱乐继续进行。
关于带进度条的 WPF SplashScreen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22026209/
我在让我的 java 闪屏工作时遇到一些小问题!我正在使用 Eclipse 和 Java 9。引用 https://docs.oracle.com/javase/tutorial/uiswing/mi
我正在使用的进口: import 'package:flutter/material.dart'; import 'package:splashscreen/splashscreen.dart'; i
我在 Oracle 文档中找到了一个关于 SplashScreen 的示例。问题是在此示例中,此处使用的图像链接在命令行中作为参数传递。我正在尝试更改代码,以便将链接写在里面,我不需要使用命令行。 方
我有一个 WPF 项目,其中有一个由项目向导添加的启动屏幕。在同一个启动屏幕上,我想添加一个进度条样式仪表。有人知道如何做到这一点吗? 最佳答案 这是我的计划。我这样做的动机是我不想在 UI 线程上运
我发现只有一种方法可以延长启动画面的显示时间。 这是将 ApplicationDefinition 更改为 Page 并进行配置的时候了。 但我需要 ApplicationDefinition,我在这
请注意以下似乎工作正常。如果这是正确的逻辑,或者如果我能做任何更好的事情,我只需要意见 所以这是我第一次使用闪屏。到目前为止(或者我认为)按预期工作,如果我使用的逻辑很好或者我可以改进它,我只需要一些
我使用 Internet 代码在我的应用程序中部署了启动画面,一切正常但无法为此 Activity 设置时间关闭并打开主应用程序可以帮助我。我尝试了处理程序的形状,但在一段时间后关闭了应用程序。 pa
我有一个需要 6 秒才能启动的应用程序,我想添加启动画面。我有这段代码: public class SplashScreen extends JWindow { private static
在我正在开发的应用程序中,我正在实现启动画面这个启动画面出现在应用程序的开头。当启动画面启动时,action bar 会显示一小会儿,比如半秒,然后消失。我不确定为什么会这样。谁能帮我解决这个问题。我
我尝试使用来自另一个项目的图像创建一个 SplashScreen: SplashScreen s = new SplashScreen("/MyAssembly;component/myImage.p
如何在第二台显示器上显示 SplashScreen?现在它仅在主显示器上显示,但应用程序在辅助显示器上启动。 最佳答案 没有属性可以控制标准 WPF 初始屏幕的显示位置。 如果您需要更改默认行为,您需
您将如何继承 System.Windows.SplashScreen 因此必须通过在精确路径加载图像时构建自身的可能性来丰富此类。 根据定义,System.Windows.SplashScreen 仅
我的应用程序在我的 Activity 启动后立即使用了大量内存。 首先我有一个主题可以在我的启动画面中放置一个图像,但是因为我想调试,所以我将它放在了代码中。在研究 Android 设备监视器和一些调
我有 MainActivity 和 LoginActivity,MainActivity 使用 Theme.MySplash(有蓝色和应用程序图标)。 首次启动时,SplashScreen 显示良好(
我们目前正在通过新的 Splashscreen API 实现启动画面。我们关注 migration guide .背景颜色设置正确(通过 windowSplashScreenBackground),但
在cordova-plugin-splashscreen ,只有一点点例子。我不知道如何将它用于 iOS 平台。这是我的问题: 有什么例子吗?(config.xml 和你把图片放在哪里) “资源名称”
我需要以编程方式创建一个 SplashScreen 并向其中添加文本(并更改它)。大多数示例都使用命令行参数。有没有可行的解决方案? 最佳答案 在 SwingWorker 中加载内容时,您可以使用带有
我正在使用 finish() 来结束 SplashScreen Activity 中的线程,当我这样做时,应用程序会在转到 Activity2 之前最小化。如何结束 SplashScreen Acti
英文翻译: 我在 VisualStudio 环境中为我的项目安装了 SplashScreen.Fody 包,用户指南是将 WPF UserControl 添加到生成用于创建和管理 SplashScre
我制作了一个应用程序,它使用 json 从服务器下载数据并按照 this tutorial. 将其显示在 ListView 中。但是现在我想在加载时在 SplashScreen 中执行此过程,然后将所
我是一名优秀的程序员,十分优秀!