Events
RadWebCam
exposes the following events, specific for the control.
SnapshotTaken
The SnapshotTaken event fires when the "Take snapshot" button is pressed or when you call the TakeSnapshot
method of RadWebCam.
The purpose of the event is to notify you that a snapshot has been taken and you need to take action, like saving it to a file.
The event arguments are of type SnapshotTakenEventArgs
which expose a Snapshot
property (of type BitmapSource).
Subscribing to the SnapshotTaken event
public MainWindow()
{
InitializeComponent();
this.radWebCam.SnapshotTaken += RadWebCam_SnapshotTaken;
}
private void RadWebCam_SnapshotTaken(object sender, SnapshotTakenEventArgs e)
{
BitmapSource snapshot = e.Snapshot;
// here you save the source to a file, in memory, or to show it in the UI
}
CameraError
The CameraError
event fires when one of the expected camera errors appears.
The event can be used to notify you about the corresponding error, or to replace the error message shown in the control.
The event arguments are of type CameraErrorEventArgs
and they expose an Error
property that contains information about the error. The Error property is of type ErrorInfo
which gives you access to the message and state of the error via the Message
and ErrorState
properties.
Subscribing to the CameraError event and replacing the no-camera error message
public MainWindow()
{
InitializeComponent();
this.radWebCam.CameraError += RadWebCam_CameraError;
}
private void RadWebCam_CameraError(object sender, CameraErrorEventArgs e)
{
if (e.Error.ErrorState == CameraErrorState.NoCamera)
{
e.Error.Message = "Cannot detect a camera device.";
}
}
RecordingStarted/Ended
The RecordingStarted
event fires just before the camera control starts recording.
The event arguments are of type RecordingStartedEventArgs
and can be used to cancel the recording start. To do this, set the Cancel
property to True.
Canceling the start recording action
public MainWindow()
{
InitializeComponent();
this.radWebCam.RecordingStarted += RadWebCam_RecordingStarted;
}
private void RadWebCam_RecordingStarted(object sender, RecordingStartedEventArgs e)
{
MessageBoxResult result = MessageBox.Show("The video will be recorded at " + this.webCam.RecordingFilePath + "\n\rDo you want to start recording?", "Start Video Recording", MessageBoxButton.YesNo, MessageBoxImage.Question);
e.Cancel = result != MessageBoxResult.Yes;
}
RecordingEnded
event fires when the camera control stops recording.
Read more about the video capturing in the Recording Video article.