C# AvaloneEdit如何在转换器中添加新语法
我想在转换器中添加自定义突出显示和新语法(JSON),但请继续使用MVVM等 也就是说,我不能走这条路:C# AvaloneEdit如何在转换器中添加新语法,c#,wpf,data-binding,avalonedit,avaloniaui,C#,Wpf,Data Binding,Avalonedit,Avaloniaui,我想在转换器中添加自定义突出显示和新语法(JSON),但请继续使用MVVM等 也就是说,我不能走这条路: editor.HighLight = HightLightLoader.Load() 我试图在转换器中设置我的逻辑,但它不起作用 我怎样才能完成这项任务 公共类HighlightingDefinitionConverter:IValueConverter { 私有静态只读HighlightingDefinitionTypeConverter=新的HighlightingDefinition
editor.HighLight = HightLightLoader.Load()
我试图在转换器中设置我的逻辑,但它不起作用
我怎样才能完成这项任务
公共类HighlightingDefinitionConverter:IValueConverter
{
私有静态只读HighlightingDefinitionTypeConverter=新的HighlightingDefinitionTypeConverter();
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
var json=字符串形式的值;
if(json.Equals(“json”))
{
var xmlTextReader=newxmltextreader(“JSONHighLight.xshd”);
返回Converter.ConvertFrom(xmlTextReader);
}
返回ConvertFrom(值);
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
返回Converter.ConvertToString(值);
}
}
我的xshd文件:
真的
假的
"
(?=:)
(?=:)\040"[^"]*
"
\b0[xX][0-9a-fA-F]+|(\b\d+(\[0-9]+)?\[0-9]+)([eE][+-]?[0-9]+)?
SyntaxHighlighting
属性需要一个实现IHighlightingDefinition
接口的对象。您正试图从内置的HighlightingDefinitionTypeConverter
进入,但它不起作用,因此传递给它XmlTextReader将不起作用
可以找到从流加载语法的代码示例:
SyntaxHighlighting
属性需要一个实现IHighlightingDefinition
接口的对象。您正试图从内置的HighlightingDefinitionTypeConverter
进入,但它不起作用,因此传递给它XmlTextReader将不起作用
可以找到从流加载语法的代码示例:
using (var s = Resources.OpenStream(resourceName))
using (var reader = XmlReader.Create(s))
{
var xshd = HighlightingLoader.LoadXshd(reader, true);
return HighlightingLoader.Load(xshd, this);
}