大佬教程收集整理的这篇文章主要介绍了Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本实例将读取拖动到Silverlight的ListBox控件中的txt文件或者Jpg文件。在本实例中将讲如果通过UIelementA.Drop事 件获取到拖动到UIelementA上的文件的相关名称以及路径等信息,以处理多个外部文件拖动到Silverlight中的相关一些小技巧的应用和操 作。
在本例中我们设置外部文件拖动到ListBox中去,首先我们要设置ListBox的AllowDrop="True",再添加一个Drop事件 Drop="listBox1_Drop",这样在外部文件拖动到ListBox中的时候可以触发Drop事件。
首先我们来看MainPage.xaml代码如下所示:
- <Grid x:Name="LayoutRoot" BACkground="White" Width="600">
- <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Width="600"
- Orientation="Horizontal">
- <ListBox Name="listBox1" BACkground="AliceBlue" Width="240"
- HorizontalAlignment="Left" VerticalAlignment="Top"
- AllowDrop="True" Height="400" Drop="listBox1_Drop">
- </ListBox>
- <TextBlock Height="149" HorizontalAlignment="Left"
- Name="textBlock1" VerticalAlignment="Top"
- Width="323" textwrapping="Wrap" />
- </StackPanel>
- <Image Height="238" Name="image1" HorizontalAlignment="Left"
- VerticalAlignment="Top" Margin="240 160 0 0" Stretch="Fill"
- Width="320" source="/SLDragFile;component/Images/1_24573_f93ae69954e2e1d.jpg" />
- </Grid>
在上面有一个TextBlock显示读取到的Txt文件内容,还有一个Image控件显示读取到的图片内容。下面我们看MainPage.xaml.cs文件代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- using System.Windows.Navigation;
- using System.IO;
- using System.Windows.Markup;
- using System.Windows.Media.Imaging;
- namespace SLDragFile
- {
- public partial class MainPage : UserControl
- {
- public MainPage()
- {
- InitializeComponent();
- }
- private void listBox1_Drop(object sender, DragEventArgs E)
- {
- //获取与拖放事件相关联的元素
- IDataObject dataObject = e.Data as IDataObject;
- //返回被拖放的外部文件的 FileInfo 数组
- FileInfo[] files = dataObject.GetData(DataFormats.FileDrop) as FileInfo[];
- foreach (FileInfo file in files)
- {
- //如果存在文件
- if (file.Exists)
- {
- listBox1.Items.Add("文件名: " + file.Name);
- //如果是txt文件,读取txt文件并且显示出来
- if (file.Extension.ToLower() == ".txt")
- {
- StreamReader sreader = file.opentext();
- String txtstr = "";
- String readStr = String.Empty;
- while ((txtstr = sreader.ReadLine()) != null)
- {
- ReadStr += txtstr;
- }
- this.textBlock1.Text = readStr;
- }
- //如果是Jpg图片,读取图片并且显示出来
- if (file.Extension.ToLower() == ".jpg")
- {
- FileStream fs= file.openRead();
- BitmapImage image = new BitmapImage();
- image.Setsource(fs);
- image1.source = image;
- }
- }
- else
- {
- listBox1.Items.Add("文件添加失败!");
- }
- }
- }
- }
- }
拖动多个文件到ListBox所出现的情况如下面三张图片所示:
本文采用VS2010+Silverlight 4.0编写,如需源码请点击 SLDragFile.zip 下载
以上是大佬教程为你收集整理的Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动全部内容,希望文章能够帮你解决Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。