public void FireFeedbackMechanism(Sketch.Sketch sketch, InkPicture inkPicture, Hashtable ink2sketchIdTable, FeedbackContext context) { // Disable the Ink Picture if it is already enabled bool toggleInkPic = inkPicture.Enabled; if (toggleInkPic) { inkPicture.Enabled = false; } foreach (Microsoft.Ink.Stroke istroke in inkPicture.Ink.Strokes) { // If this ink stroke does not have a // corresponding sketch stroke, skip it if (!ink2sketchIdTable.Contains(istroke.Id)) { continue; } // Get the label of the corresponding substroke Guid substrokeGuid = (Guid)ink2sketchIdTable[istroke.Id]; Substroke substr = sketch.GetSubstroke(substrokeGuid); if (substr != null) { string label = substr.GetFirstLabel(); // Now color the stroke if (label == UIConstants.WireLabel) { istroke.DrawingAttributes.Color = UIConstants.WireColor; } else if (label == UIConstants.ErrorLabel) { istroke.DrawingAttributes.Color = UIConstants.ErrorColor; } } else { // We should report an error here because // there should be a substroke // in the sketch if it's referenced in the // hashtable continue; } } // Re-enable the ink picture if it was enabled. if (toggleInkPic) { inkPicture.Enabled = true; } }
/// <summary> /// Set Ink stroke colors based upon domain /// </summary> public override void FireFeedbackMechanism(Sketch.Sketch sketch, InkPicture inkPicture, Hashtable ink2sketchIdTable, FeedbackContext context) { // Only fire feedback on recogition events if (context != FeedbackContext.OnRecognitionResult) { return; } // Disable the Ink Picture if it is already enabled bool toggleInkPic = inkPicture.Enabled; if (toggleInkPic) { inkPicture.Enabled = false; } // Set Ink stroke colors foreach (Microsoft.Ink.Stroke istroke in inkPicture.Ink.Strokes) { // If this ink stroke does not have a // corresponding sketch stroke, skip it if (!ink2sketchIdTable.Contains(istroke.Id)) { continue; } // Get the label of the corresponding substroke Guid substrokeGuid = (Guid)ink2sketchIdTable[istroke.Id]; Substroke substr = sketch.GetSubstroke(substrokeGuid); if (substr != null) { string label = substr.GetFirstLabel(); // Now color the stroke istroke.DrawingAttributes.Color = domain.getColor(label); // Store the label if (this.ink2sketchLabelTable.Contains(istroke.Id)) { this.ink2sketchLabelTable[istroke.Id] = label; } else { this.ink2sketchLabelTable.Add(istroke.Id, label); } } else { // We should report an error here because // there should be a substroke // in the sketch if it's referenced in the // hashtable continue; } } // Re-enable the ink picture if it was enabled. if (toggleInkPic) { inkPicture.Enabled = true; } }