更改WPF文本框文本并保持撤消堆栈

时间:2018-02-16 13:43:15

标签: c# wpf textbox custom-controls undo

我有一个简单的控件,其基类是Textbox。 我想从该控件内部更改Text(this.Text ="旧文本+新文本+旧文本"),但它清除了ctrl + Z堆栈。 我有自动提示弹出窗口,插入新值后我的ctrl + Z堆栈重置。

我已经读过它发送 WM_SETTEXT param,所以在那之后ctrl + Z堆栈重置。建议的解决方案是选择文本,然后更改SelectedText值(它将发送 EM_REPLACESEL 消息)。但在这种情况下,选择操作也将添加到堆栈中。例如,如果我的文本是 Hello Wor ,并且我从建议弹出窗口插入World word,那么它将选择 Wor world,之后将Selectedtext值设置为世界。当我按下ctrl + Z时,我会看到选中的 Wor 字,再次点击ctrl + Z后我会看到正确的结果(没有选择)。

所以我想选择文本,更改SelectedText并且不要将此操作添加到撤消堆栈。有可能吗?

标准方法

public void InsertSuggestion(string suggestion, int start, int length)
{
  this.Select(start,length);
  SelectedText =  suggestion;
}

SelectedText方法

<?php
$image = "data:image/jpeg;base64,/9j/4AAQdihdiwd......";
$binary = base64_decode(explode(',', $image)[1]);

$data = getimagesizefromstring($binary);
print_r($data);

0 个答案:

没有答案