当前位置: 首页 > wzjs >正文

做网站要先申请域名吗系统优化大师

做网站要先申请域名吗,系统优化大师,霞山网站建设公司,如何电脑安装wordpressUI 虚拟化是 WPF 采用的一项技术,框架会仅创建用户可见的 UI 元素。例如,如果 ListView 中有 1000 个文本块控件,但您只能查看其中的 10 个,那么 VisualTree 中也只会显示 10 个文本块。向下滚动时,不再可见的元素将被…

    UI 虚拟化是 WPF 采用的一项技术,框架会仅创建用户可见的 UI 元素。例如,如果 ListView 中有 1000 个文本块控件,但您只能查看其中的 10 个,那么 VisualTree 中也只会显示 10 个文本块。向下滚动时,不再可见的元素将被丢弃,并创建下一组可见项。这种虚拟化技术在速度和内存方面都带来了显著的 UI 性能优势。

    WPF 中的 UI 虚拟化由 VirtualizingStackPanel 提供,并且默认启用。您可以像图中所示,在 StackPanel 上显式指定 UI 虚拟化的开启/关闭。

<StackPanel VirtualizingStackPanel.IsVirtualizing="True"></StackPanel>

    请注意,UI 虚拟化仅在 ItemsControl 生成其自身模板时才有效。如果生成了模板,然后添加虚拟化,则虚拟化将被禁用。因此,UI 虚拟化的缺点在于它在某些情况下是禁用的。其中一种情况是您覆盖 ItemsPanelTemplate 或 ItemsControl 的模板。在这种情况下,如果 ItemsPanelTemplate 由开发人员自定义,则 UI 虚拟化将被禁用。因此,如果您的 ItemsControl 显示已加载的数据,那么您就有麻烦了。为了避免这种情况并在覆盖 ItemsPanelTemplate 的情况下启用 UI 虚拟化,我们需要使用 VirtualizingStackPanel。

    为了测试启用和禁用虚拟化的效果,我编写了一个简单的应用程序。它有一个列表视图,其 itempanel 模板已自定义 - 首先使用普通的 StackPanel,然后使用 VirtualizingStackPanel。它从名称列表中加载文本块。

    当我在列表中运行包含 1000000 个项目的测试时,在没有虚拟化的情况下,程序根本无法启动。它占用了近 2 GB 的内存,而且根本无法运行。所以我不得不终止它。然后,启用虚拟化后,程序很快就启动了,内存占用只有 200MB。在此之前,让我们先看看我使用的 XAML 和后台代码。它还会向您展示如何自定义 ItemsPanelTemplate 和使用 VirtualizingStackPanel。

<Window x:Class="NiceControlsTest.Window2" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window2"Height="300"Width="300"Loaded="Window_Loaded"> 
<Grid> 
<ListView ItemsSource="{BindingNames}"Name="lv"> 
<ListView.ItemsPanel> 
<ItemsPanelTemplate> 
<!--<StackPanel/>
如果使用 StackPanel,则消耗的内存将超过 2GB,并且速度非常慢。
--> 
<VirtualizingStackPanel> 
<!--内存占用仅 200 mb--> 
</VirtualizingStackPanel> 
</ItemsPanelTemplate> 
</ListView.ItemsPanel> 
<ListView.ItemTemplate> 
<DataTemplate> 
<TextBlock Text="{Binding}"/> 
</DataTemplate> 
</ListView.ItemTemplate> 
</ListView> 

</Grid> 
</Window>

背后的代码非常简单:

public partial class Window2 : Window 

public List<string> Names { get; set; } 
private DateTime start; 
public Window2() 

start = DateTime.Now; 
InitializeComponent(); 
Names = new List<string>(); 
for (int i = 0; i < 10000; i++) 
Names.Add("Name : " + i); 
lv.DataContext = this; 

private void Window_Loaded(object sender, RoutedEventArgs e) 

MessageBox.Show((DateTime.Now - start).TotalSeconds.ToString()); 

    经过精确测量了从窗口构建到加载的时间。结果发现,仅使用 StackPanel 时,对于使用的 10000 个项目(为了加快测量速度,减少了项目数量),内存占用约为 176 MB,启动时间为 7 到 10 秒。而使用 VirtualizingStackPanel 时,内存占用略高于 16 MB,启动时间为 0.3 到 0.8 秒。

    个人认为这对我们开发人员来说非常有利。我们可以设计和开发大型高负载图形应用程序,而无需担心进行某种程度的优化。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

http://www.dtcms.com/wzjs/180194.html

相关文章:

  • 动态网站的功能与特点怎么推广网站链接
  • 响应式网站工具互联网营销师教材
  • 北京地产网站建设职业培训网络平台
  • 适用于手机的网站怎么建设做营销型网站哪家好
  • 镇江专业网站制作线上推广平台报价
  • html5移动端网站开发海外广告投放公司
  • 清溪网站建设seo联盟
  • wordpress 企业网站模板百度手机浏览器
  • 海淀公司网站搭建广告投放方案
  • 企业建设网站的目的( )网店seo关键词
  • 可以在线做动图的网站黑帽seo技术培训
  • 济南网站建设泰观网络长沙搜索排名优化公司
  • 做网盟行业网站的图片广告的销售软文营销策划
  • 网站建设的重难点分析长沙网站优化
  • 苏州建设工程网360搜索关键词优化软件
  • asp服装网站源码网络营销软文范文
  • seo外链发布广州网站优化外包
  • 全球新冠肺炎疫情最新消息网站排名优化培训
  • 网站开发实战项目网络营销活动推广方式
  • 做网站(信科网络)新闻摘抄四年级下册
  • 建立网站如何推广搜狐财经峰会直播
  • 网站排名首页成都谷歌seo
  • 衡水做wap网站费用怎样做好竞价推广
  • 嘉兴关键词优化报价深圳seo优化公司搜索引擎优化方案
  • 网站模版怎么样百度直接打开
  • 做旅游网站挣钱吗英雄联盟世界排名
  • 淘宝做网站推广长尾关键词排名推广
  • 整站优化外包公司seoul什么意思
  • 广州网站建设o2o百度帐号登录
  • 电子商务网站开发的意义广州白云区今天的消息