gpt4 book ai didi

c# - AvalonEdit 的 AcceptsReturn ="False"

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:43 25 4
gpt4 key购买 nike

我需要一个单行的 AvalonEdit 控件(相当于带有 AcceptsReturn="False"的 TextBox)。

AvalonEdit 好像没有这个属性。

如何为 AvalonEdit 执行此操作?

最佳答案

您可以尝试处理 PreviewKeyDown 事件并在 Key 为 Return 时将 e.Handled 设置为 true。

此外,我猜想您希望防止将换行符粘贴到文本区域中。这必须通过以下事情来完成:

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
// Find the Paste command of the avalon edit
foreach (var commandBinding in textEditor.TextArea.CommandBindings.Cast<CommandBinding>())
{
if (commandBinding.Command == ApplicationCommands.Paste)
{
// Add a custom PreviewCanExecute handler so we can filter out newlines
commandBinding.PreviewCanExecute += new CanExecuteRoutedEventHandler(pasteCommandBinding_PreviewCanExecute);
break;
}
}
}

void pasteCommandBinding_PreviewCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
// Get clipboard data and stuff
var dataObject = Clipboard.GetDataObject();
var text = (string)dataObject.GetData(DataFormats.UnicodeText);
// normalize newlines so we definitely get all the newlines
text = TextUtilities.NormalizeNewLines(text, Environment.NewLine);

// if the text contains newlines - replace them and paste again :)
if (text.Contains(Environment.NewLine))
{
e.CanExecute = false;
e.Handled = true;
text = text.Replace(Environment.NewLine, " ");
Clipboard.SetText(text);
textEditor.Paste();
}
}

关于c# - AvalonEdit 的 AcceptsReturn ="False",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com