【问题标题】:How do I get xml tag from cursor position in c# wpf textbox如何从 c# wpf 文本框中的光标位置获取 xml 标记
【发布时间】:2020-05-09 08:17:37
【问题描述】:

我在 WPF 文本框中有一个 XML 文本。

例如,如果光标是这样定位的,

或者像这样

我想得到tag1。而如果光标位于tag2

我得到tag2,等等...

【问题讨论】:

标签: c# xml wpf


【解决方案1】:

首先,您需要在 XAML 中定义 AcceptsReturn="True",但我想您知道这一点。

然后,您可以这样使用TextBoxGetLineText 方法(我创建了虚拟文本框和事件处理程序用于演示):

private void txb_KeyDown(object sender, KeyEventArgs e)
{
    // Handle event only if Q is pressed.
    if (e.Key != Key.Q) return;
    // Count how many newline characters there were, to determine index of current line.
    var lineIndex = txb.Text.Substring(0, txb.CaretIndex).Count(ch => ch == '\n');
    // Get current line.
    var currentLine = txb.GetLineText(lineIndex);
}

【讨论】:

  • 这不是首先需要“KeyDown”吗?它现在会提供光标位置,直到输入内容?
  • @GeorgeKerwood 是的,但它只是给出一个想法,而不是具体的实现 :) 整个实现将需要错误处理等。而且这个网站不是准备好的,完全编码的解决方案。
  • 您好,谢谢您的回答,但很遗憾,如果标签前有空格或标签有“子标签”,它将不起作用。例如“(光标位于此处)”或'(光标位于此处)' 将不起作用
  • @mohamedsherrif 这只是为了让您了解如何在光标位置上获得一条线,剩下的交给您:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2013-01-13
相关资源
最近更新 更多