鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > .net技术 > WinRT/Metro > >

选取器: 自定义文件选取窗口, 自定义文件保存窗口

来源:互联网 作者:佚名 时间:2013-05-18 11:49
重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口Posted on [源码下载] 重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口 作者:webabcd 介绍 重新想象 Windows 8 Store Apps 之

重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口 Posted on

[源码下载]


重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口



作者:webabcd


介绍
重新想象 Windows 8 Store Apps 之 选取器

  • FileOpenPickerUI - 自定义文件打开选取器
  • FileSavePickerUI - 自定义文件保存选取器


  • 示例
    1、 开发一个自定义文件选取窗口。注:如果需要激活自定义的文件选取窗口,请在弹出的选取器窗口的左上角选择对应 Provider
    Picker/MyOpenPicker.xaml

    <Page x:Class="XamlDemo.Picker.MyOpenPicker" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:XamlDemo.Picker" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable

    Picker/MyOpenPicker.xaml.cs

    /* * 演示如何开发自定义文件打开选取器 * * 1、在 Package.appxmanifest 中新增一个“文件打开选取器”声明,并做相关配置 * 2、在 App.xaml.cs 中 override void OnFileOpenPickerActivated(FileOpenPickerActivatedEventArgs args),如果 app 是由文件打开选取器激活的,则可以在此获取其相关信息 * * FileOpenPickerActivatedEventArgs - 通过“文件打开选取器”激活应用程序时的事件参数 * FileOpenPickerUI - 获取 FileOpenPickerUI 对象 * PreviousExecutionState, Kind, SplashScreen - 各种激活 app 的方式的事件参数基本上都有这些属性,香港服务器网站空间,就不多说了 * * FileOpenPickerUI - 自定义文件打开选取器的帮助类 * AllowedFileTypes - 允许的文件类型,只读 * SelectionMode - 选择模式(FileSelectionMode.Single 或 FileSelectionMode.Multiple) * Title - 将在“自定义文件打开选取器”上显示的标题 * CanAddFile(IStorageFile file) - 是否可以将指定的文件添加进选中文件列表 * AddFile(string id, IStorageFile file) - 将文件添加进选中文件列表,并指定 id * ContainsFile(string id) - 选中文件列表中是否包含指定的 id * RemoveFile(string id) - 根据 id 从选中文件列表中删除对应的文件 * FileRemoved - 从选中文件列表中删除文件时触发的事件 * Closing - 用户关闭“自定义文件打开选取器”时触发的事件 */ using System; using Windows.ApplicationModel; using Windows.ApplicationModel.Activation; using Windows.Storage; using Windows.Storage.Pickers.Provider; using Windows.Storage.Provider; using Windows.Storage.Streams; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Navigation; namespace XamlDemo.Picker { MyOpenPicker : Page { private FileOpenPickerUI _fileOpenPickerUI; public MyOpenPicker() { this.InitializeComponent(); } OnNavigatedTo(NavigationEventArgs e) { args = (FileOpenPickerActivatedEventArgs)e.Parameter; _fileOpenPickerUI = args.FileOpenPickerUI; _fileOpenPickerUI.Title = ; // _fileOpenPickerUI.Closing += _fileOpenPickerUI_Closing; // _fileOpenPickerUI.FileRemoved += _fileOpenPickerUI_FileRemoved; } OnNavigatedFrom(NavigationEventArgs e) { // _fileOpenPickerUI.Closing -= _fileOpenPickerUI_Closing; // _fileOpenPickerUI.FileRemoved -= _fileOpenPickerUI_FileRemoved; } btnPickLocalFile_Click_1(object sender, Windows.UI.Xaml.RoutedEventArgs e) { /* * 注意: * 1、选择的文件的扩展名必须匹配 FileOpenPicker.FileTypeFilter 中的定义 * 2、如果通过 KnownFolders.DocumentsLibrary 等选择文件,除了要在 Package.appxmanifest 选择对应的“库”功能外,还必须在 Package.appxmanifest 中的“文件类型关联”声明中增加对相应的的扩展名的支持 */ StorageFile file = ); AddFileResult result = _fileOpenPickerUI.AddFile(, file); lblMsg.Text = + file.Name; lblMsg.Text += Environment.NewLine; lblMsg.Text += + result.ToString(); } btnPickRemoteFile_Click_1(object sender, Windows.UI.Xaml.RoutedEventArgs e) { Uri uri = , UriKind.Absolute); // 扩展名必须匹配 FileOpenPicker.FileTypeFilter 中的定义 StorageFile file = , uri, RandomAccessStreamReference.CreateFromUri(uri)); AddFileResult result = _fileOpenPickerUI.AddFile(, file); lblMsg.Text = + file.Name; lblMsg.Text += Environment.NewLine; lblMsg.Text += + result.ToString(); } } }

    判断程序是否是由文件打开选取器激活,在 App.xaml.cs 中 override void OnFileOpenPickerActivated(FileOpenPickerActivatedEventArgs args)

    网友评论
    <