WPF ListBox异步加载图片
来源:互联网 发布:如何在淘宝搜索vpn 编辑:程序博客网 时间:2024/05/17 23:38
ListBox加载大量图片时,如果采用同步方法,页面出来速度太慢,最好办法就是采用异步加载了,直接上代码,如下:
前台页面完整代码:
<Window x:Class="异步加载图片.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Loaded="Window_Loaded" WindowState="Maximized" Background="#FF199864">
<Window.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Padding" Value="3,3,3,3"/>
</Style>
</Window.Resources>
<Grid>
<ListBox x:Name="list" VerticalAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.PanningRatio="2.0" ScrollViewer.CanContentScroll="False">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" VirtualizingStackPanel.IsVirtualizing="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Background>
<SolidColorBrush />
</ListBox.Background>
</ListBox>
</Grid>
</Window>
后台代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (string file in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory+"Photo"))
{
string file1 = file;//必须有,不妨试试不加这段代码,看看效果就明白了
Dispatcher.BeginInvoke((Action)(() =>
{
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(file1,UriKind.RelativeOrAbsolute);
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
double ww = bitmap.PixelWidth;
double hh = bitmap.PixelHeight;
Image image = new Image();
image.Source = bitmap;
image.Height = 200;
image.Width = 200 * (ww / hh);
this.list.Items.Add(image);
}));
}
}
}
这样的方法页面出来速度是快了,但图片加载速度还是慢,原本预想结果是图片是一张一张加在进来的,却图片是全部一下加载到界面上,所以速度显得有点慢。解决办法
采用 Dispatcher.BeginInvoke(DispatcherPriority.Background, (Action)(() => {.......}
- WPF ListBox异步加载图片
- WPF 异步加载图片
- WPF 异步加载
- WPF ListBox
- WPF ListBox
- WPF ListBox
- WPF listbox异步绑定数据IsAsync=True
- 异步加载图片
- 异步加载图片
- ajax异步加载图片
- android异步加载图片
- 异步图片加载实例
- android 异步加载图片
- 图片异步加载
- list 异步加载图片
- 异步加载本地 图片
- UITableView 异步加载图片
- android异步加载图片
- RedHat/CentOS系统信息查看命令大全
- 使用Apache Avro
- Spring接口测试
- 总结自己失败的经历
- java笔试题---用*打印漏斗形,信雅达笔试题
- WPF ListBox异步加载图片
- 利用visual c++编译时遇到的问题
- 国家气象局提供的天气预报接口
- Spring MVC 对于返回JSON格式数据的中文乱码 解决方法
- JAVA开发环境的配置
- 查询电脑占用端口的程序
- 项目小问题笔记二
- 查看ODBC
- 扩展Oozie