public void SetTransformations(SyntaxHighlightDataList highlightData)
{
Dispatcher.UIThread.InvokeAsync(() =>
{
var transformations = new TextSegmentCollection<TextTransformation>(document);
foreach (var transform in highlightData)
{
if (transform.Type != HighlightType.None)
{
if (transform is LineColumnSyntaxHighlightingData)
{
var trans = transform as LineColumnSyntaxHighlightingData;
transformations.Add(new TextTransformation
{
Foreground = GetBrush(transform.Type),
StartOffset = document.GetOffset(trans.StartLine, trans.StartColumn),
EndOffset = document.GetOffset(trans.EndLine, trans.EndColumn)
});
}
else
{
transformations.Add(new TextTransformation
{
Foreground = GetBrush(transform.Type),
StartOffset = transform.Start,
EndOffset = transform.Start + transform.Length
});
}
}
}
TextTransformations = transformations;
if (DataChanged != null)
{
DataChanged(this, new EventArgs());
}
});
}