mirror of
https://github.com/soukoku/ntwain.git
synced 2026-01-26 21:48:36 +08:00
Added cap value report saver to wpf sample.
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
using GalaSoft.MvvmLight;
|
||||
using GalaSoft.MvvmLight.Command;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
using ModernWpf.Messages;
|
||||
using NTwain;
|
||||
using NTwain.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Sample.WPF
|
||||
{
|
||||
@@ -69,5 +77,55 @@ namespace Sample.WPF
|
||||
}
|
||||
|
||||
public ObservableCollection<CapVM> Caps { get; private set; }
|
||||
|
||||
private ICommand _saveCapCommand;
|
||||
|
||||
public ICommand SaveCapValuesCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return _saveCapCommand ?? (_saveCapCommand = new RelayCommand(() =>
|
||||
{
|
||||
Messenger.Default.Send(new ChooseFileMessage(files =>
|
||||
{
|
||||
StringBuilder report = new StringBuilder();
|
||||
report.Append("Cap values for TWAIN device ").AppendLine(DS.Name);
|
||||
report.Append("Generated on ").AppendLine(DateTime.Now.ToString("yyyy/MM/dd hh:mm tt")).AppendLine();
|
||||
|
||||
foreach (CapVM cap in _capView)
|
||||
{
|
||||
report.Append(cap.Name).AppendLine(":");
|
||||
try
|
||||
{
|
||||
report.Append('\t').Append("Maybe: ").Append(cap.Supports).AppendLine();
|
||||
report.Append('\t').Append("Get: ");
|
||||
foreach (var v in cap.Get())
|
||||
{
|
||||
report.Append(v).Append(',');
|
||||
}
|
||||
report.AppendLine();
|
||||
report.Append('\t').Append("Current: ").Append(cap.GetCurrent()).AppendLine();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
report.Append('\t').Append("Failed: ").Append(ex.Message).AppendLine();
|
||||
}
|
||||
report.AppendLine();
|
||||
}
|
||||
|
||||
File.WriteAllText(files.First(), report.ToString());
|
||||
|
||||
using (Process.Start(files.First())) { }
|
||||
})
|
||||
{
|
||||
Caption = "Choose Save File",
|
||||
Filters = "Text files|*.txt",
|
||||
InitialFileName = DS.Name + " capability",
|
||||
Purpose = FilePurpose.Save,
|
||||
});
|
||||
}, () => DS.IsOpen));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user