Windows 8 Store Apps学习(25) 选取器: 文件选取窗口等

选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口

介绍

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

FileOpenPicker - 选择一个文件或多个文件

FolderPicker - 选择一个文件夹

FileSavePicker - 保存文件到指定路径

示例

1、演示如何通过 FileOpenPicker 选择一个文件或多 个文件

Picker/FileOpenPickerDemo.xaml

<Page
    x:Class="XamlDemo.Picker.FileOpenPickerDemo"
    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="d">

    <Grid Background="Transparent">
        <StackPanel Margin="120 0 0 0">

            <TextBlock Name="lblMsg" FontSize="14.667" />

            <Button Name="btnPickFile" Content="pick a file" Click="btnPickFile_Click_1" Margin="0 10 0 0" />

            <Button Name="btnPickFiles" Content="pick multiple files" Click="btnPickFiles_Click_1" Margin="0 10 0 0" />

        </StackPanel>
    </Grid>
</Page>

Picker/FileOpenPickerDemo.xaml.cs

/*
 * 演示如何通过 FileOpenPicker 选择一个文件或多个文件
 *
 * FileOpenPicker - 文件选择窗口
 *     ViewMode - 文件选择窗口的视图模式,Windows.Storage.Pickers.PickerViewMode 枚举(List 或 Thumbnail)
 *     SuggestedStartLocation - 文件选择窗口所显示的初始路径,Windows.Storage.Pickers.PickerLocationId 枚举
 *         DocumentsLibrary, ComputerFolder, Desktop,, Downloads, HomeGroup, MusicLibrary, PicturesLibrary,VideosLibrary
 *     FileTypeFilter - 允许显示在文件选择窗口的文件类型集合
 *     CommitButtonText - 文件选择窗口的提交按钮的显示文本,此按钮默认显示的文本为“打开”
 *     PickSingleFileAsync() -  弹出文件选择窗口,以让用户选择一个文件
 *     PickMultipleFilesAsync() - 弹出文件选择窗口,以让用户选择多个文件
 */

using System;
using System.Collections.Generic;
using Windows.Storage;
using Windows.Storage.AccessCache;
using Windows.Storage.Pickers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace XamlDemo.Picker
{
    public sealed partial class FileOpenPickerDemo : Page
    {
        public FileOpenPickerDemo()
        {
            this.InitializeComponent();
        }

        private async void btnPickFile_Click_1(object sender, RoutedEventArgs e)
        {
            if (XamlDemo.Common.Helper.EnsureUnsnapped())
            {
                // 选择一个文件
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.CommitButtonText = "选中此文件";
                openPicker.ViewMode = PickerViewMode.Thumbnail;
                openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
                openPicker.FileTypeFilter.Add(".jpg");
                openPicker.FileTypeFilter.Add(".gif");
                openPicker.FileTypeFilter.Add(".png");

                // 弹出文件选择窗口
                StorageFile file = await openPicker.PickSingleFileAsync(); // 用户在“文件选择窗口”中完成操作后,会返回对应的 StorageFile 对象
                if (file != null)
                {
                    lblMsg.Text = "选中文件: " + file.Name;
                }
                else
                {
                    lblMsg.Text = "取消了";
                }
            }
        }

        private async  void btnPickFiles_Click_1(object sender, RoutedEventArgs e)
        {
            if (XamlDemo.Common.Helper.EnsureUnsnapped())
            {
                // 选择多个文件
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.ViewMode = PickerViewMode.List;
                openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
                openPicker.FileTypeFilter.Add("*");

                // 弹出文件选择窗口
                IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync(); // 用户在“文件选择窗口”中完成操作后,会返回对应的 StorageFile 对象
                if (files.Count > 0)
                {
                    lblMsg.Text = "选中文件: ";
                    lblMsg.Text += Environment.NewLine;
                    foreach (StorageFile file in files)
                    {
                        lblMsg.Text += (file.Name);
                        lblMsg.Text += Environment.NewLine;
                    }
                }
                else
                {
                    lblMsg.Text = "取消了";
                }
            }
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 文件
, storage class
, using
, 窗口
, 选择
, picker
文件窗口
,以便于您获取更多的相关知识。

时间: 2025-01-30 05:09:42

Windows 8 Store Apps学习(25) 选取器: 文件选取窗口等的相关文章

Windows 8 Store Apps学习(22) 文件系统: 访问文件夹和文件,搜索本地文件

文件系统: 访问文件夹和文件, 通过 AQS 搜索本地文件 介绍 重新想象 Windows 8 Store Apps 之 文件系统 File Access - 访问文件夹和文件,以及获取文件的各种属性 Folder Access - 遍历文件夹时的一些特殊操作 Thumbnail Access - 获取文件的缩略图 AQS - 通过 AQS(Advanced Query Syntax)搜索本地文件 示例 1.演示如何访问文件夹和文件,以及如何获取文件的各种属性 FileSystem/FileAc

重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口

原文:重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 选取器 FileOpenPicker - 选择一个文件或多个文件 FolderPicker - 选择一个文件夹 FileSavePicker - 保存

Windows 8 Store Apps学习(28) 选取器: CachedFileUpdater

选取器: CachedFileUpdater(缓存文件更新程序) 介绍 重新想象 Windows 8 Store Apps 之 选取器 CachedFileUpdater - 缓存文件更新程序 示例 一.首先新建一个 Windows 应用商店项目,使其作为缓存文件更新程序 1. 打开一个文件,并关 联到 CachedFileUpdater CachedFileUpdaterProvider/MyOpenPicker.xaml <Page x:Class="CachedFileUpdater

Windows 8 Store Apps学习(27) 选取器: 联系人选取窗口

选取器: 联系人选取窗口, 自定义联系人选取窗口 介绍 重新想象 Windows 8 Store Apps 之 选取器 ContactPicker - 联系人选取器 ContactPickerUI - 自定义联系人选取器 示例 演示如何通过 ContactPicker 选择一个或多个联系人 ,以及如何开发自定义联系人选取器 1. 开发一个自定义联系人选取器 Picker/MyContactPicker.xaml <Page x:Class="XamlDemo.Picker.MyContac

Windows 8 Store Apps学习(26) 选取器: 自定义文件选取窗口和保存窗口

选取器: 自定义文件选取窗口, 自定义文件保存窗口 介绍 重新想象 Windows 8 Store Apps 之 选取器 FileOpenPickerUI - 自定义文件打开选取器 FileSavePickerUI - 自定义文件保存选取器 示例 1. 开发一个自定义文件选取窗口.注:如果需要 激活自定义的文件选取窗口,请在弹出的选取器窗口的左上角选择对应 Provider Picker/MyOpenPicker.xaml <Page x:Class="XamlDemo.Picker.My

Windows 8 Store Apps学习(41) 打印

介绍 重新想象 Windows 8 Store Apps 之 打印 示例 1.需要打印的文档 Print/PrintPage.xaml <Page x:Class="XamlDemo.Print.PrintPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xam

Windows 8 Store Apps学习(34) 通知: Toast Demo, Tile Demo, Badge Demo

介绍 重新想象 Windows 8 Store Apps 之 通知 Toast - 通知的应用 Tile - 瓷贴的应用 Badge - 徽章的应用 Badge - 轮询服务端以更新 Badge 通知 示例 1.演示 toast 的基 本应用 Notification/Toast/Demo.xaml <Page x:Class="XamlDemo.Notification.Toast.Demo" xmlns="http://schemas.microsoft.com/w

Windows 8 Store Apps学习(39) 契约: Share Contract

介绍 重新想象 Windows 8 Store Apps 之 契约 Share Contract - 右侧边栏称之为 Charm,其 中的"共享"称之为 Share Contract 示例 1.演示如何开发共享源 Contracts/ShareContract/ShareSource.xaml <Page x:Class="XamlDemo.Contracts.ShareContract.ShareSource" xmlns="http://sche

Windows 8 Store Apps学习(71)

作者:webabcd 介绍 重新想象 Windows 8 Store Apps 之 其它 C# 中调用 Windows Runtime Component(C++) 让 Windows Runtime Component(C++) 作为代理以调用 DLL(C++) 通过 C++ 和 D3D 获取屏幕分辨率 示例 一.演示如何在 C# 中调用 Windows Runtime Component(C++),以及 Windows Runtime Component(C++) 如何作为代理调用 DLL(