WPF Drag/drop 文本之间的按钮

WPF Drag/drop buttons in between text

我需要制作一个功能,您必须能够在其中为一段文本制作模板。您需要能够输入硬文本和占位符。这个想法是你可以像在任何文本框控件中一样输入文本,也可以在控件中拖动代表占位符的按钮,例如姓名或年龄。是否可以在同一控件中同时输入文本和 drag/drop 按钮?

我已经找到 Devexpress ButtonEdit 控件,但该控件不允许您对文本之间的按钮进行排序。我也在考虑只使用按钮并使它们可编辑,但这对用户来说可能不太方便。

提前致谢。

是的,可以使用 InlineUIContainer RichTextBox

private void RichTextBox_PreviewDrop(object sender, DragEventArgs e)
{
    RichTextBox tb = ((RichTextBox)sender);
    var b = new Button();
    b.Content = "Placeholder";
    var container = new InlineUIContainer(b, tb.CaretPosition);
    container.BaselineAlignment = BaselineAlignment.Center;
    tb.CaretPosition = container.ElementEnd;
    e.Handled = true;
}