SplashScreen 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为应用的初始屏幕提供消除事件和图像位置信息。
public ref class SplashScreen sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
class SplashScreen final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public sealed class SplashScreen
Public NotInheritable Class SplashScreen
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
初始屏幕示例演示如何在应用启动时在其激活的事件处理程序中检索 SplashScreen 对象。
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
if (args.PreviousExecutionState != ApplicationExecutionState.Running)
{
bool loadState = (args.PreviousExecutionState == ApplicationExecutionState.Terminated);
ExtendedSplash extendedSplash = new ExtendedSplash(args.SplashScreen, loadState);
Window.Current.Content = extendedSplash;
}
Window.Current.Activate();
}
function activated(eventObject) {
if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
// Retrieve splash screen object
splash = eventObject.detail.splashScreen;
// Retrieve the window coordinates of the splash screen image.
SdkSample.coordinates = splash.imageLocation;
// Register an event handler to be executed when the splash screen has been dismissed.
splash.addEventListener("dismissed", onSplashScreenDismissed, false);
// Create and display the extended splash screen using the splash screen object.
ExtendedSplash.show(splash);
// Listen for window resize events to reposition the extended splash screen image accordingly.
// This is important to ensure that the extended splash screen is formatted properly in response to snapping, unsnapping, rotation, etc...
window.addEventListener("resize", onResize, false);
// Use setPromise to indicate to the system that the splash screen must not be torn down
// until after processAll and navigate complete asynchronously.
eventObject.setPromise(WinJS.UI.processAll().then(function () {
// Navigate to either the first scenario or to the last running scenario
// before suspension or termination.
var url = WinJS.Application.sessionState.lastUrl || scenarios[0].url;
return WinJS.Navigation.navigate(url);
}));
}
}
// Register your activated event handler
WinJS.Application.addEventListener("activated", activated, false);
可以使用传递给已激活事件处理程序的对象来获取有关已激活事件的信息。 在此示例中,对象包含有关 启动 激活的信息,并且是 webUILaunchActivatedEventArgs (JavaScript) 或 LaunchActivatedEventArgs (C#/C++/VB) 对象,具体取决于编程语言。 通过此对象的 Kind 属性,可以区分不同类型的激活 (,例如 ActivationKind.launch 或 ActivationKind.search) 。
注解
通过使用传递到处理程序的事件对象上的 SplashScreen 属性,从应用的已激活事件处理程序访问此对象。
对于 JavaScript
在激活的事件处理程序中响应 已 激活的事件。 若要了解如何响应激活的事件,请参阅 应用生命周期。
如果在过渡到延长的初始屏幕期间注意到闪烁,请在标记上添加 onload=""
,如下所示: <img id="extendedSplashImage" src="./windows.applicationmodel.activation/images/splash-sdk.png" alt="Splash screen image" onload="" />
。 这有助于防止闪烁,让系统等待图像呈现完毕,然后切换到延长的初始屏幕。
此外,如果使用片段加载来加载延长的初始屏幕页面,你仍可能会注意到 Windows 初始屏幕关闭和页面显示之间的闪烁。 你会看到此闪烁,因为片段加载开始异步加载模拟初始屏幕页面,然后 激活的事件处理程序 完成执行。 可以通过避免使用片段加载来加载延长的初始屏幕页面 (来防止这种难看的闪烁,如 初始屏幕示例) 所示。 (完成其他加载任务(如初始屏幕示例) 所示)后,可以导航到应用的main页面。 或者,如果想要在延长的初始屏幕页面中继续使用片段加载,还可以通过获取激活延迟并异步响应 已激活 的事件来防止闪烁。 通过调用 activatedOperation 获取已激活事件的延迟。getDeferral 方法。
对于 C#/C++/VB
通过重载相应的 已 激活事件处理程序方法来响应已激活的事件。 例如,使用 OnLaunched 响应 ActivationKind.Launch 激活事件。 若要了解如何响应激活的事件,请参阅 应用生命周期。
如果在过渡到延长的初始屏幕期间注意到闪烁,请参阅 如何延长初始屏幕 (HTML) 中的“备注”部分以获取帮助。
SplashScreen 属性适用于所有 Windows.ApplicationModel.Activation 类。
属性
ImageLocation |
应用的初始屏幕图像相对于窗口的坐标。 |
事件
Dismissed |
关闭应用的初始屏幕时触发。 |