- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 WPF 和 Caliburn.micro 的新手,我想使用 Caliburn 为 WPF 应用程序实现自定义闪屏。我正在寻找使用屏蔽导体的正确方法(据我所知,这是最佳解决方案)。
我的 Bootstrap 看起来像这样:
public class AppBootstrapper : BootstrapperBase
{
private bool actuallyClosing;
private CompositionContainer container;
public AppBootstrapper()
{
Start();
}
protected override void Configure()
{
container = new CompositionContainer(
new AggregateCatalog(AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>())
);
var batch = new CompositionBatch();
batch.AddExportedValue<IWindowManager>(new WindowManager());
batch.AddExportedValue<IEventAggregator>(new EventAggregator());
batch.AddExportedValue(container);
container.Compose(batch);
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
protected override object GetInstance(Type serviceType, string key)
{
string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
var exports = container.GetExportedValues<object>(contract);
if (exports.Any()) return exports.First();
throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
}
protected override IEnumerable<object> GetAllInstances(Type serviceType)
{
return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
}
protected override void BuildUp(object instance)
{
container.SatisfyImportsOnce(instance);
}
protected override void OnStartup(object sender, StartupEventArgs e)
{
DisplayRootViewFor<ShellViewModel>();
}
}
ShellViewModel 是这样的:(但我实际上并不想看到它的窗口)
[Export(typeof(ShellViewModel))]
public class ShellViewModel : Conductor<Screen>
{
[ImportingConstructor]
public ShellViewModel()
{
ActivateItem(new SplashScreenViewModel());
int i = 10; // loading ... or do the loading inside the splashscreen ??
ActivateItem(new MainWindowViewModel());
}
}
SplashScreenViewModel 非常简单:
[Export(typeof(SplashScreenViewModel))]
public class SplashScreenViewModel : Screen
{
private string appName;
private string version;
private string service;
private string creator;
private string copyright;
private string message;
[ImportingConstructor]
public SplashScreenViewModel()
{
appName = Assembly.GetEntryAssembly().GetName().Name;
version = Assembly.GetEntryAssembly().GetName().Version.ToString();
copyright = "Copyright © corp 2014";
service = "Department";
creator = "user - " + Service;
message = "Loading ...";
}
}
最后,MainWindowViewModel:
[Export(typeof(MainWindowViewModel))]
public class MainWindowViewModel : Screen, IGuardClose
{
[ImportingConstructor]
public MainWindowViewModel()
{
NetworkUpdate(); // do stuff.
}
void IGuardClose.CanClose(Action<bool> callback)
{
throw new NotImplementedException();
}
void IClose.TryClose()
{
throw new NotImplementedException();
}
}
现在我正在尝试各种方法,但它要么什么都不显示,要么只显示主窗口,要么只显示启动画面,甚至是 shellview 的空 View ...
我真的很感激对此的一些提示!
谢谢大家...
最佳答案
不要将 ActivateItem 用于初始屏幕。
根据我对启动的了解,最好使用 WindowManager(在 exe 加载所有必要进程时显示弹出窗口)
你可以在 OnStartUp 的 Appbootstrapper 中完成
protected override void OnStartup(object sender, StartupEventArgs e)
{
var splash = this.container.GetExportedValue<SplashScreenViewModel>();
var windowManager = IoC.Get<IWindowManager>();
windowManager.ShowDialog(splash);
// do your background work here using
var bw = new BackgroundWorker();
bw.DoWork += (s, e) =>
{
// Do your background process here
};
bw.RunWorkerCompleted += (s, e) =>
{
// close the splash window
splash.TryClose();
this.DisplayRootViewFor<ShellViewModel>();
};
bw.RunWorkerAsync();
}
// your ShellViewModel
[ImportingConstructor]
public ShellViewModel(MainViewModel mainViewModel)
{
this.DisplayName = "Window Title";
// no need to new
this.ActivateItem(mainViewModel);
}
关于c# - 带有外壳屏幕导体的自定义 caliburn.micro 闪屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141186/
我想在 flutter 中实现我的启动画面。 如前所述here ,我在 styles.xml 中创建了我的 splashScreen 主题文件并输入以下代码: @drawable/launc
我正在使用 cordova 做一个应用程序,我正在尝试使用 android 的启动画面,但我不知道该怎么做,或者如果我必须安装插件,iOS 的启动画面工作正常. 希望有人能给我指出正确的方向,告诉我如
我正在开发一个 android 应用程序,我想放一张默认图片。这在 iPhone 应用程序中很常见;当应用程序启动时,它会显示开发人员的名称和带有图像的应用程序名称(例如)。 我认为这是可能的,因为像
就 PWA 启动画面而言,人们是否认为 https://pwa-splash.now.sh/ 处的代码和 https://medium.com/@applification/progressive-w
我在 phonegapp 应用程序中设置了所有内容。在我拖放 CordovaLib.xcodeproj 之后,更改我的应用程序图标和屏幕文件夹中的启动画面。但应用程序仍在加载 cordovaLib 启
我的问题是在 android 手机中,当单击我的应用程序时,它需要显示启动画面,但在 micromax a110 中,当我启动应用程序时,首先出现白屏,然后仅出现启动画面。但是对于我的应用程序,我只需
我想在我的应用程序中制作一个启动画面,因为我需要知道如何全屏显示图像。这可以由 XML 或 Java 代码制作吗?如何?现在我刚刚做了这个: public class SplashScreen ext
我正在启动一个应用程序,目前我有两个 View ,一个称为 Splash,另一个称为 Home。碰巧当启动画面结束时,它会将我带到主视图,但在此 View 中,用户向后按下按钮,应用程序会再次向我显示
我有一个带有 Twitter 页面选项卡的 iPhone 应用程序...但是,每次有人访问它时...它会加载以下启动页面,我不知道如何在加载时删除此启动画面推特页面? 我当前的代码是 [webView
我想为我的 Android 应用制作启动画面。我在 android studio 的 welcomescreen.java 中编写了以下代码。但是运行应用程序后,应用程序停止了。 :( 我现在该怎么办
我正在使用 webpack + angular2 初学者工具包。 Loading... 但是当我想使用 Splash 组件而不是“加载”时 我没有任何启动画面
目前我在做一个 android-phonegap 项目。 在应用加载 index.html 之前,有一些 native 代码在工作。详细地说,它在 AsyncTask 中,它在 SD 卡上(如果有的话
基于以下文章 https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/ 在开发时,iOS 应
我是 WPF 和 Caliburn.micro 的新手,我想使用 Caliburn 为 WPF 应用程序实现自定义闪屏。我正在寻找使用屏蔽导体的正确方法(据我所知,这是最佳解决方案)。 我的 Boot
我一直在使用 Django,现在我正在使用 Electron,因为我想创建一个桌面应用程序。 我想知道是否有一种简单的方法可以创建启动画面(无框架窗口),仅显示 Logo 几秒钟,然后打开一个“正常”
我想在我的 Flutter 应用程序中启动任何内容之前为初始屏幕添加 Lottie 动画。我检查过的插件还不完全支持动画的所有功能,或者不能按预期工作。 有什么方法可以在实际 flutter 事件启动
每次启动我的应用程序时,我都需要显示一个弹出窗口或启动画面之类的东西。此弹出窗口的内容必须取自外部网络资源(例如 jpg、png 或 pdf)。此弹出窗口的目的是警告用户有关新闻和特别优惠的信息。弹出
我有一个 PhoneGap 1.4.1/jQueryMobile 1.0.1/Android 项目,它显示 res/drawable/splash.png 很好,加载 WebView 后启动画面消失。
我的 apache cordova(带有 ionic 3)有问题,这个问题只发生在 iphone X 上。 当应用程序启动时,它会显示默认的 ionic 启动画面(像这样,但已缩放): 几毫秒后,这个
我正在使用 ionic-framework 和 Cordova 插件开发混合应用程序。他们问我两个操作系统(iOS 和 Android)上的启动画面都有一个小动画。我想象一个 GIF,但如果您可以将
我是一名优秀的程序员,十分优秀!