コード例 #1
0
ファイル: PathSelector.cs プロジェクト: vtnplus/MoneroGui.Net
        void OnButtonSelectPathClick(object sender, EventArgs e)
        {
            if (Filters != null)
            {
                // Handle file selection
                using (var dialog = new OpenFileDialog()) {
                    foreach (var filter in Filters)
                    {
                        dialog.Filters.Add(filter);
                    }

                    if (TextBoxPath.Text.Length != 0)
                    {
                        var fileInfo = new FileInfo(TextBoxPath.Text);
                        if (fileInfo.Exists)
                        {
                            Debug.Assert(fileInfo.DirectoryName != null, "fileInfo.DirectoryName != null");
                            dialog.Directory = new Uri(fileInfo.DirectoryName);
                        }
                        else
                        {
                            dialog.Directory = new Uri(Utilities.ApplicationBaseDirectory);
                        }
                    }

                    if (dialog.ShowDialog(this) == DialogResult.Ok)
                    {
                        TextBoxPath.Text = Utilities.GetRelativePath(dialog.FileName);
                    }
                }
            }
            else
            {
                // Handle directory selection
                using (var dialog = new SelectFolderDialog()) {
                    if (TextBoxPath.Text.Length != 0)
                    {
                        var directory = Utilities.GetAbsolutePath(TextBoxPath.Text);
                        if (Directory.Exists(directory))
                        {
                            dialog.Directory = directory;
                        }
                    }

                    if (dialog.ShowDialog(this) == DialogResult.Ok)
                    {
                        TextBoxPath.Text = Utilities.GetRelativePath(dialog.Directory);
                    }
                }
            }

            TextBoxPath.SelectAll();
            TextBoxPath.Focus();
        }
コード例 #2
0
        /// <summary>
        /// 実行。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonExecute_Click(object sender, RoutedEventArgs e)
        {
            var path = TextBoxPath.Text;

            if (string.IsNullOrEmpty(path))
            {
                MessageBox.Show("対象のファイル/フォルダパスを指定してください。", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                TextBoxPath.Focus();
                return;
            }

            var targets = new List <string>();

            if (File.Exists(TextBoxPath.Text))
            {
                targets.Add(TextBoxPath.Text);
            }
            else if (Directory.Exists(TextBoxPath.Text))
            {
                var availableExtensions = new List <string>()
                {
                    ".png",
                    ".jpg",
                    ".jpeg",
                };

                var files = Directory.GetFiles(TextBoxPath.Text);
                targets.AddRange(files.Where(x => availableExtensions.Contains(Path.GetExtension(x))));
            }

            var iconConverter = new Converter();

            foreach (var filePath in targets)
            {
                var icon = iconConverter.CreateIconImageFromFilePath(filePath);

                icon.Save(Path.ChangeExtension(filePath, ".conv.ico"), ImageFormat.Icon);
            }
        }
コード例 #3
0
 private void TextBoxPath_LayoutUpdated(object sender, object e)
 {
     TextBoxPath.Focus(FocusState.Programmatic);
     TextBoxPath.LayoutUpdated -= TextBoxPath_LayoutUpdated;
 }