问题标签 [avalonedit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Mvvm 与 AvalonEdit SelectionStart、SelectionLength 的绑定
我正在尝试使用 MVVM 模式让 AvalonEdit 正常工作,但我真的不知道该怎么做。我想将 SelectionLength 和 SelectionStart 绑定到我的 ViewModel,以便在执行某些业务逻辑时可以访问这两个值。
我开始像这样创建 DependencyProperties:
TextDependencyProperty 工作正常,但 SelectionLength 和 SelectionStart 不工作。
我为 SelectionChanged 添加了一个事件处理程序(但我并不完全使用 SetValue 在这里做的事情:
选择现在可以工作,但是向后选择有问题。在这种情况下,SelectionStart 始终为 0。如果到目前为止我所做的一切都是正确的,那么我将创建一个逻辑,如果有人向后选择,则将索引和长度正确转换。我必须在 PropertyMetaDataDelegate 中实现这个逻辑吗?
avalonedit - Avalonedit 显示语法错误
当我使用 avalonedit 开发自定义语言 IDE 时,我遇到了一个问题。我使用正则表达式来检查语法,它按设计工作。但是,我想用波浪文本标记显示语法错误。我确实在 google 上搜索过,但该解决方案要么已过时,要么不可行。有任何想法吗?提前谢谢。
c# - AvalonEdit 中的整行高亮显示
我正在使用 AvalonEdit 为补丁文件创建一个视图,我想让它在整行中突出显示差异,而不仅仅是文本背景 - 类似于 GitHub for Windows 今天所做的:
我是 AvalonEdit 的新手,所以我不确定最好的方法。这是我到目前为止发现的:
覆盖
VisualLineElementGenerator
以创建一个附加的 TextSpan,它是控件的长度。这似乎很棘手。手动创建一个新控件以
TextView.Layers
在背景中添加并在绿色/红色中添加 OnRender - 这似乎更有希望,但目前还不清楚我需要挂钩什么事件以检测何时重新渲染。覆盖 TextView - 这似乎有点矫枉过正。
编辑:这是一个简单的语法荧光笔会发生什么,这是我不想要的:
c# - AvalonEdit:是否可以突出显示这种语法?
我有一个简单的“语言”(类似于模板语言和简单的标记语言,例如 BBcode — 基本上它只是带有一些变量、标签和类似功能的普通文本),我想强调它的语法。
这是我坚持的事情。
有变量,它们用$符号($var1$)括起来。我用这条规则突出显示它们:
变量周围的某些区域可以用{ }字符包围。
换句话说:一些变量可以有它的“区域”,它从变量之前的第一个{开始,到变量之后的第一个}结束。多个变量不能在一个区域中,因此在{ $var1$ $var2$ }
没有任何区域的情况下,{ } 被视为普通字符并被忽略。它不是 C 风格语言中的函数和局部范围之类的范围。
这是一个例子:
首先,我尝试使用两个正则表达式来解决这个问题(对于 { 和 },当然使用这种方法不可能跳过带有or之类的Rule
未闭合括号的情况,但这不是一个大问题)。但是我发现它只在一行内有效。{ $var$
$var$ }
Rule
然后我尝试Span
这样:
一些问题:
虽然是
/li>multiline
正则true
表达式Begin
并且End
不适用于多行。所以它不匹配这个:如果没有右括号,则 span 会占用所有内容,直到文档结束。这就是我添加
.
规则的原因。
c# - 如何在运行时将关键字添加到主规则集?
我在运行时向主规则集添加了一个新的关键字对象。但除了那些关键字之外,其他规则都正确着色。
谁能解释为什么在运行时加载的单词没有突出显示?
其中,突出显示的方法是:
谢谢!
更新 1
在尝试了丹尼尔的建议后,
我得到这个例外:
那么,为什么会抛出这个异常呢?我要做的就是添加Keywords
对象并将其颜色设置为 XSHD 中的预定义颜色。
或者,这不是正确的方法吗?
avalonedit - 无法在 AvalonEdit 的基本用法中输入空格
我将 AvalonEditor 的一个简单实例放入 WPF 用户控件中,它会忽略我尝试输入的任何空格。但是其他文字很好。我没有配置任何突出显示或更改控制模板。我是否需要在控件上配置设置以接受空格?谢谢
c# - 使用 MVVM 在 WPF 中绑定失败
我创建了一个TextEditor
继承自 AvalonEdit 的自定义控件。我这样做是为了方便使用此编辑器控件使用 MVVM 和 Caliburn Micro。[为显示目的而削减]MvvTextEditor
类是
现在,在拥有此控件的视图中,我有以下 XAML:
我的问题是SelectionLength
(SelectionStart
但让我们现在只考虑长度,因为问题是一样的)。如果我用鼠标选择了一些东西,从视图到我的视图模型的绑定效果很好。现在,我编写了一个查找和替换实用程序,我想从后面的代码中设置SelectionLength
(在控件中具有get
并且set
可用)。TextEditor
在我的视图模型中我只是设置SelectionLength = 50
,我在视图模型中实现这个
当我设置时SelectionLength = 50
,类DependencyProperty SelectionLengthProperty
中没有更新,MvvmTextEditor
就像TwoWay
绑定到我的控件失败但使用 Snoop 没有任何迹象。我认为这只会通过绑定起作用,但事实并非如此。
我是否缺少一些简单的东西,或者我是否必须在类中设置事件处理程序MvvmTextEditor
来监听我的视图模型中的变化并更新 DP 本身[这会带来它自己的问题]?
谢谢你的时间。
avalonedit - AvalonEdit - 语法高亮 - 如何添加下划线、更改字体大小等?
我正在尝试构建一个基本的 Markdown 风格的纯文本/富文本编辑器。(文本样式是内联的,而不是像大多数 Markdown 编辑器那样并排放置两个面板)(我也不打算支持完整的 Markdown 规范 - 没有列表或表格,主要只是富文本格式如粗体、斜体、下划线等)
我有一个使用 AvalonEdit 项目的项目(通过源代码,而不是 Nuget 包) - 我完全按照我的意愿设置了编辑器 - 然后当我意识到荧光笔只支持时,我开始编写语法高亮 XSHD 文件字体颜色、斜体、粗体等格式,而不是字体大小、下划线等...
如何添加其他字体格式?我是否必须编写一个全新的解析器/荧光笔/其他?有没有一种简单的方法可以连接和扩展现有的荧光笔?
我已经对源文件 (TextEditor.xaml) 中的一个文件进行了一些小的更改,并且我愿意进行更多更改以完成这项工作 - 尽管当我开始时我希望尽可能少地接触源文件。 ..
如果有人能指出我正确的方向,我会很感激 - 谢谢!
wpf - 如何在 AvalonEdit 中居中文本?
我正在使用 ICSharpCode 的 AvalonEdit 文本编辑器,并且我有一个自定义 DocumentColorizingTransformer。
我想在 ColorizeLine 中居中某些文本行。这可能吗?
我已经能够弄清楚如何以我想要的所有其他方式(颜色、斜体、下划线等)更改行的文本,但我不知道如何更改行的文本对齐方式......
c# - WPF AvalonEdit 不显示来自 ViewModel 的绑定 TextDocument
我的输出窗口中没有绑定错误。
我想通过 MVVM 将文件中的文本绑定到一个/多个 avalonEdit 控件。
我该怎么做,因为它不像我尝试的那样工作?!
看法
视图模型
我看过那个样本是引入了 MVVM:
http://www.codeproject.com/Articles/570313/AvalonDock-Tutorial-Part-AvalonEdit-in-Avalo
当我加载文本文件时,我实际上做了同样的绑定,但我的文本没有显示:/
你可以在这里找到一个 repro visual studio 解决方案:
http://www.file-upload.net/download-9067428/ExpanderTest.7z.html