1. Take the steps described in Integrate DevMateKit if you haven't done it yet.
  2. You can specify additional DMFrameworkSettings properties if needed. DevMate Crash Report provides the following configuration options:
PropertyTypeDescription
IsBetaboolSpecifies whether a current version of the application is Beta.
ApplicationSettingsDictionary<string,object>Application settings that must be sent with the report data.
AdditionalInfromationstringAdditional information that must be sent with the report data.
ApplicationIconstringSets a “TitleBar” icon for DevMate Framework windows. Must contain at least one 16x16pt icon. Example: pack://application:,,,/TestApp;component/icon.ico.
LogFilePathstringPath to a log file (if there is a number of log files, it sends only the recently used). If a value is null or empty, or file does not exist, then the Framework tries to load a file from the Logs property.
LogsstringUsed to set up specific logs if a LogFilePath value is null or empty. If a value is null or empty, an empty string is sent to the server.

For example:

DMFeedbackFrameworkSettings.ApplicationSettings.Add("Setting1", "Value1"); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("Language", "en"); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("AppRunCount", 0); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("Setting2", "Value2");  

DMFeedbackFrameworkSettings.LogFilePath = @"C:\Program Files\AppName\Logs\logfile.log";
DMFeedbackFrameworkSettings.AdditionalInformation = "Version with hidden feature";

Crashes

This report type is generally used to notify about unhandled exceptions.
To subscribe for unhandled exceptions:

App.Current.DispatcherUnhandledException += CurrentOnDispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
					
...
 
private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
	DMFeedbackWindowController.ShowCrashReportDialog(e.Exception);  
}    
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)  
{
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
  	DMFeedbackWindowController.ShowCrashReportDialog(e.ExceptionObject as Exception);
}
private void CurrentOnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)  
{
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
	DMFeedbackWindowController.ShowCrashReportDialog(e.Exception);  
}

Exceptions

Generally, this type of a report is used to show non-critical exceptions handled with “try-catch” statement.
For example:

try  
{
  	Directory.CreateDirectory(“testFolder”);  
}  
catch (Exception ex)  
{
  	Trace.TraceError("Could not create folder”);a
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
  	DMFeedbackWindowController.ShowCrashReportDialog(ex, FeedbackTypes.Exception);  
}