Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >最小化XAML应用程序启动时间

最小化XAML应用程序启动时间
EN

Stack Overflow用户
提问于 2012-10-14 18:30:11
回答 2查看 326关注 0票数 0

微软的文章(http://msdn.microsoft.com/en-us/library/windows/apps/hh994639.aspx)指出,您可以创建一个扩展的闪屏页面,在此期间您可以创建MainPage,然后在加载后导航到该页面。

唯一的问题是,在将页面设置为Window.Current.Content属性之前,永远不会触发页面的Loaded事件。

有谁有解决这个问题的办法吗?-我的MainPage有相当多的XAML,需要一段时间才能加载到低端设备上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-15 17:27:51

默认情况下,应用程序在其可视根目录下有一个框架控件。你可以修改它,例如把你自己的UserControl (我通常叫它AppShell)放在里面,它有所有页面使用的框架,你可以有一个用于弹出窗口,登录屏幕等的层,或者扩展的闪屏。

要解决您的问题-只需将框架和扩展的splash控件都放在一个网格中,并仅在加载扩展的splash控件后导航到第一页。那么其他的一切都应该是简单的。

票数 0
EN

Stack Overflow用户

发布于 2012-10-15 18:20:11

如果您使用MainPage类似于ASP.NET中的MasterPage,那么MainPage应该有APP Bar定义,并且在正文中应该只包含一个Frame元素。使用此模式设置应用程序的内容,而不是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Window.Current.Content = // An Application Page 
use
AppFrame.Content = //An Application Page

还要考虑从Mainpage元素中删除您的主页面代码,并将其放入一个自定义用户控件中,然后您就可以从userControl中创建一个事件,供MainPage处理。它还允许您在应用程序的其他地方使用该功能,而无需完全重新创建逻辑和UI。

下面是MainPage的XAML示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Page.Resources>
    <ResourceDictionary x:Name="CommonStyles" Source="/Common/StandardStyles.xaml" />
</Page.Resources>
<Page.TopAppBar>
    <AppBar x:Name="NavigationAppBar" Padding="10,0,10,0" AutomationProperties.Name="Global App Bar" >
        <Grid>                
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <StackPanel x:Name="LeftCommands" Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
            <!-- App Bar Buttons Removed --> 
            </StackPanel>
        </Grid>
    </AppBar>
</Page.TopAppBar>

<!--
    This grid acts as a root panel for the page that defines two rows:
    * Row 0 contains the back button and page title
    * Row 1 contains the rest of the page layout
-->

使用Getter和Setter将类型为Frame的公共属性添加到应用程序视图模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public Frame SelectedAppFrame {get;set;}

在MainPage.xaml.cs文件中,指定一个属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ApplicationViewModel vm = this.PageBackgroundGrid.DataContext as ApplicationViewModel;
vm.SelectedAppFrame = this.AppFrame;

App View Model中的泛型导航代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void HandleNavigaitionEvent(object sender, string pageName, Frame AppFrame, StackPanel stack)
        {
            var content = Pages.Where(i => i.Name == pageName).FirstOrDefault();
            NavigateTrigger(AppFrame, content);
        }

public void NavigateTrigger(Frame AppFrame, LayoutAwarePage content)
        {
            EventAggregator.GetEvent<PageNavigatedEvent>().Publish(content);
            AppFrame.Content = content;
            NaviagationPath.Add(content);
        }

这样,您就可以从应用程序中可访问ApplicationViewModel的任何位置(应该是所有位置)将更改传播到AppFram中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12885216

复制
相关文章
怎么理解 onStart可见但不可交互
这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的理解,以及View绘制的时机。
码上积木
2021/03/10
8030
Kubernetes 中利用 LXCFS 控制容器资源可见性
Linux 利用 Cgroup 实现了对容器的资源限制,但在容器内部依然缺省挂载了宿主机上的 procfs 的 /proc 目录,其包含如:meminfo、cpuinfo、stat、uptime 等资源信息。一些监控工具如 free、top 或 业务应用还依赖上述文件内容获取资源配置和使用情况。当它们在容器中运行时,就会把宿主机的资源状态读取出来,导致资源设置不对。
YP小站
2020/06/16
3.8K7
Kubernetes 中利用 LXCFS 控制容器资源可见性
使能容器网络,Jaguar “Sky”版本发布
北京时间2018年10月10日,Kubernetes网络开源解决方案Jaguar项目发布0.1.0版本,代号“Sky”。
SDNLAB
2018/10/24
6640
使能容器网络,Jaguar “Sky”版本发布
使用ntopng和InfluxDB实现容器和网络可见性
舒徐一段时间以来,我们一直在研究如何以一种简单有效的方式将系统监控和网络监控结合起来。2014年,我们对Sysdig进行了一些实验,最近,由于有了eBPF,我们对我们的工作进行了改进,以利用该技术并能够监控容器化环境。几个月前,我们已经展示了如何仅通过利用linux操作系统的某些功能,甚至不查看流量数据包,就可以检测,计数和衡量在特定主机上发生的网络活动。我们的开创性著作已发表在论文“使用eBPF结合系统可见性和安全性”。此后,我们在FOSDEM 2019上发表了“使用BPF合并系统和网络监控”的演讲,并与InfluxDB的朋友共同撰写了文章“容器时间的IT监控:进入eBPF可观察性”,除此之后还有其他活动。
虹科网络可视化与安全
2020/12/09
1.4K0
使用ntopng和InfluxDB实现容器和网络可见性
利用LXCFS增强容器隔离性和资源可见性
JVM会根据宿主机的内存去分配堆内存,所以经常在给容器配额的场景下直接导致java类应用起不来,当然如java10会更好的适配容器,所以本文通过介绍lxcfs来解决容器里面资源可见性问题,让容器内看到的是真实的容器配额资源量。
sealyun
2019/07/25
1.2K0
WASI如何使容器化更有效率
WebAssembly,或 Wasm[1],是一种标准化的二进制格式,它允许用任何语言编写的软件在任何平台上、在沙箱或运行时(即虚拟机)内以接近本机的速度运行,无需定制。由于这些运行时与它们的宿主环境是隔离的,WebAssembly 系统接口(WASI)为开发人员提供了一种单一的、标准的方法来调用任何平台上存在的低级函数。采用 Wasm 的开发人员可以自由地编写软件,不用理软件将在哪里运行。
CNCF
2021/05/27
1.8K0
Android面试:怎么理解 onStart可见但不可交互?不要小瞧了这个问题,涉及面很多!
这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的理解,以及View绘制的时机。
Android技术干货分享
2021/03/30
1.2K0
Android面试:怎么理解 onStart可见但不可交互?不要小瞧了这个问题,涉及面很多!
如何使容器成为架构师最好的朋友
数字转型正在从根本上改变全球组织的经营方式。通过DevOps实践,IT团队正在帮助降低成本,提高敏捷性,并创建一个创新驱动增长的新时代。但是是什么驱动着DevOps呢?越来越多地看到,答案是容器:许多人认为这是云计算的重大发展,为开发者提供了最需要的可伸缩性和灵活性。然而,对于负责维护IT基础设施的企业架构师来说,容器的“梦想”可能很快就会变成噩梦。
CNCF
2019/12/04
7000
OpenShift 的容器镜像(第 3 部分):使您的镜像易用
这是我在欧洲,中东和非洲(EMEA)红帽技术交流 2017 会议上的一个会议记录,与会者包括 EMEA 所有红帽解决方案架构师和顾问。会议的主要内容包括了在创建运行于 OpenShift 上的镜像时,需要考虑事项和最佳实践。第三部分重点介绍如何让应用程序开发人员或发布经理创造出更容易使用的镜像。
hldh214
2018/01/10
1.1K0
不背锅运维:解读docker容器网络
查看web01容器的详情,它的输出是json,为了方便查看,可复制出来对json串进行解析
不背锅运维
2022/11/18
3370
不背锅运维:解读docker容器网络
使用小程序容器技术,使工业互联网平台建设加速
随着我国新一代信息技术与制造技术的深度融合,在工业数字化、网络化、智能化转型需求的带动下,以泛在互联、全面感知、智能优化、和安全稳固为特征的工业互联网应运而生。
pak
2022/09/21
3700
华人首席科学家发文Science:科研伤身拒绝卷!但不敢和导师说不
---- 新智元报道   编辑:好困 David 【新智元导读】比起大厂「996」,搞科研的「卷度」可能还更胜一筹。最近,一位曾经被卷坏了身体的科学家站了出来,在Science上连发两篇文章。 「互联网民工」:工作996,生病ICU。 「科研狗」:我们直接24小时工作制。 这不,来自贝尔实验室的首席科学家Mingde Zheng,就把自己一心科研结果「卷进」急诊室的故事发表在了Science上。 而在去年的一篇Science文章中,还是这位科学家,分享了自己读书时和工作后因不会拒绝而被导师和同事「榨
新智元
2022/04/24
3420
华人首席科学家发文Science:科研伤身拒绝卷!但不敢和导师说不
使用小程序容器技术,使工业互联网平台建设加速
2021年是“十四五”规划的开局之年,也是在经历疫情后我国经济重回发展正轨的关键之年,期间工业互联网相关政策规划密集出台。2021年3月12日,《“十四五”规划和2035年远景目标纲要》发布,该文件三提“工业互联网”,为我国在“十四五”期间工业互联网的发展指明了前进的方向;随后,工信部印发的《“十四五”信息化和工业化深度融合发展规划》《“十四五”软件和信息技术服务业发展规划》等文件也对工业互联网、工业大数据、工业软件等产业未来五年发展作出明确部署。
pak
2022/06/14
3650
使Spring.NET的IOC容器支持动态加载的程序集
当我们发布系统时,有时候希望不用关掉应用程序就能完成发布,但Spring.NET的ApplicationContext是从AppDomain.CurrentDomain中加载的程序集中创建对象的,并不支持从动态加载的程序集中创建对象,如果直接把更新后的程序集复制到bin目录,会无法替换dll或导致应用程序重启。最近我正好有这个需求,就研究了一下Spring的相关代码,需要解决的问题如下:
明年我18
2019/09/18
7040
使Spring.NET的IOC容器支持动态加载的程序集
内存可见性
可见性:当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。如果没有同步,这种情况就无法实现。 下面的代码说明了当多个线程在没有同步的情况下共享数据时出现的错误。在代码中,主线程和读线程都会访问共享变量ready和number。很显然代码看起来会输出42,但事实上肯可能输出0(重排序导致),甚至根本无法终止。这是因为代码中没有足够的同步机制,因此无法保证主线程写入ready和number对读线程是可见的。 public class NoVisibility{     private static b
SuperHeroes
2018/05/31
8360
预加载JavaScript/CSS但不执行
好吧,一个方案一个方案来分析一下(要求是不允许执行Javascript和应用CSS,以免消耗系统资源):
meteoric
2018/11/15
2K0
对象可见性
此引出 Java 的一个一般设计原则——对象默认可见。如果我有一个对象的引用,就可以复制一个副本,然后将其交给另一个线程,不受任何限制。Java 中的引用其实就是类型指针,指向内存中的一个位置,而且所有线程都共用同一个地址空间,所以默认可见符合自然规律。
宇宙之一粟
2020/11/24
4780
爬虫实现csdn文章一键(批量)更换阅读类型(全部可见、粉丝可见、vip可见)
“ 动手创造美好” - bigsai
bigsai
2019/09/24
2.7K0
爬虫实现csdn文章一键(批量)更换阅读类型(全部可见、粉丝可见、vip可见)
OpenShift的容器映像(第3部分):使你的映像可用
这是我在2017年欧洲、中东和非洲(EMEA)红帽技术交流会议上的一个会议记录,该会议集合了EMEA所有红帽解决方案架构师和顾问。它主要讨论在创建运行于OpenShift上的映像时需要考虑的事项和好的实践(案例)。第三部分重点介绍如何让应用程序开发者或发布管理员更容易地使用映像。
marsggbo
2018/01/10
1.1K0
点击加载更多

相似问题

使按钮较少可见,但不会消失

41

如何使表布局满足100%的容器

13

如果满足条件,则C#使属性可见。

31

试图使flex容器行,但不工作

14

如何使容器在滚动时始终可见

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文