コード例 #1
0
        /// <summary>
        /// 変換開始ボタンをクリックしたときの処理を定義します。
        /// </summary>
        private void ConvertButton_Click(object sender, RoutedEventArgs e)
        {
            var directory = SamePath.IsChecked == true ? null : OutputDirectory.Text;

            if (directory != null && !Directory.Exists(directory))
            {
                BeginStoryboard(storyboard);
                return;
            }

            var codec        = (CodecInfo)CodecList.SelectedItem;
            var removeSource = SamePath.IsChecked == true && RemoveSource.IsChecked == true;
            var trimming     = IsTrimming.IsChecked == true;
            var trimmingType = LeftTop.IsChecked == true ? TrimType.LeftTop : TrimType.RightBottom;
            var line200      = Is200Line.IsChecked == true;
            var color8       = false;// Is8Color.IsChecked == true;

            Task.Factory.StartNew(() =>
            {
                foreach (var sourceImage in sourceImages)
                {
                    // 既にファイルが存在する場合の処理をどうするか後ほど決定
                    var result = sourceImage.Save(codec, directory, removeSource, trimming, trimmingType, line200, color8);
                    var log    = $"{sourceImage.Filename} => ";

                    switch (result)
                    {
                    case SaveResult.Processed:
                        log += $"{codec.Name}";
                        break;

                    case SaveResult.Skipped:
                        log += "skipped.";
                        break;

                    default:
                        log += "undefined.";
                        break;
                    }

                    Dispatcher.BeginInvoke(new Action(() =>
                    {
                        LogView.Items.Add(log);
                        LogView.ScrollIntoView(LogView.Items[LogView.Items.Count - 1]);
                    }));
                }
            });
        }
コード例 #2
0
 public EncodingWindow()
 {
     InitializeComponent();
     Application.Current.Exit      += CurrentExit;
     _logEntries.CollectionChanged += (sender, args) =>
     {
         try
         {
             LogView.ScrollIntoView(_logEntries[_logEntries.Count - 1]);
         }
         catch (Exception ex)
         {
             Log.Error("Encoding Log error", ex);
         }
     };
 }
コード例 #3
0
        protected void LogReceived(LogEventStruct log)
        {
            var empty = !LogEntries.Any();

            Dispatcher.BeginInvoke(new Action(() =>
            {
                LogEntries.Add(log);
                LogView.SelectedIndex = LogView.Items.Count - 1;
                LogView.ScrollIntoView(LogView.SelectedItem);
                ResizeColumns();
            }));

            if (empty)
            {
                Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(ResizeColumns));
            }
        }
コード例 #4
0
 private void ScrollToItem(object item)
 {
     LogView.ScrollIntoView(item);
 }