Home > C# > WPF > WPFコントロール > ダイアログボックス

セーブ・ファイル・ダイアログボックス

概要

セーブファイルダイアログボックスは、保存する際、ファイル名とパスの入力を支援するダイアログボックスです。

サンプルコード

メインウィンドウのボタンを押すと、セーブファイルダイアログが開き、パスと名前を指定すると、 メインウィンドウのラベルにしていた、フルパスのファイル名が表示されます。

using Microsoft.Win32;を宣言しても、Microsoft.Win32.SaveFileDialogとクラスをフルパスで使用しないと、 クラスを認識してくれませんでした。原因は特定できませんでした。

[xaml]


<Window x:Class="SaveFileDialog.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="150" Width="200">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="80*"/>
            <RowDefinition Height="40*"/>
        </Grid.RowDefinitions>
        <Button Name="btn0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center" 
                Width="170" Height="50" Click="btn0_Click">
            SaveFileDialogを開きます。
        </Button>
        <Label Name="Label01" content="メッセージ" Grid.Row="1" Background="Cornsilk" />

    </Grid>
</Window>
				
メインウィンドウ ダイアログボックス

[xaml.cs]


using System;
using System.Windows;

using System.IO;        // ファイル操作で使用する。
using Microsoft.Win32; // オープンファイル・ダイアログボックスで使用する。

namespace SaveFileDialog
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btn0_Click(object sender, RoutedEventArgs e)
        {
            msd_SaveFileDialogProcess();
        }

        private void msd_SaveFileDialogProcess()
        {
            // ラベルの内容を消去します。
            Label01.Content = "";
            
            // Configure save file dialog box セーブ・ファイル・ダイアログボックスを設定します。
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();

            dlg.FileName = "Document"; // Default file name 既定のファイル名
            dlg.DefaultExt = ".text"; // Default file extension 既定のファイル拡張子
            dlg.Filter = "Text documents (.txt)|*.txt"; 
            // Filter files by extension 拡張機能によってファイルにフィルターをかけます。

            // Show save file dialog box 既定のファイル拡張子
            Nullable<bool> result = dlg.ShowDialog();

            // Process save file dialog box results セーブ・ファイル・ダイアログボックスを表示します。
            if (result == true)
            {
                // ファイル名をフルパスで表示します。
                string filename = dlg.FileName;
                Label01.Content = filename;
            }
        }
    }
}
				

参考サイト

動作確認環境

Microsoft Visual Studio Express 2013 for Desktop 64bit
Windows 8.1 pro 64bit
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」