WPF RichTextBox - 使用自定义控件替换选定的文本
在我开始研究一个非常粗糙的解决方案之前,我想看看是否有人可以给我一点正确的方向推动。
我真正想做的是让用户在 RichTextBox 中选择一些文本,单击按钮,然后将该文本转换为自定义呈现的控件。例如,将其转换为包含他们选择的文本的按钮。
Before I start hacking in a really crude solution, I thought I'd see if someone could give me a little nudge in the right direction.
What I really want to do is let a user select some text in a RichTextBox, click a button, and convert that text into a custom rendered control. Convert it to a Button containing the text they had selected, for instance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 Command 和 CommandParameter 执行此操作。
首先,将按钮绑定到 ICommand,例如:
然后在 ViewModel 或控制器或代码隐藏或任何位置,将 ICommand 作为属性公开,并将其指向执行工作的方法,就像...
注意:我使用了 Josh Smith 优秀的 MVVM Foundation 的 RelayCommand,但你也可以例如,使用 RoutedUICommand(这将增加让您将输入手势与命令关联起来的额外好处)
You can do this with Command and CommandParameter
First, bind the button to an ICommand, like:
Then in your ViewModel or Controller or Code-behind or wherever, you expose the ICommand as a property,and point it to a method to do the work, like...
Note: I have used the RelayCommand from Josh Smith's excellent MVVM Foundation, but you could equally use a RoutedUICommand for example (which would add the extra benefit of letting you associate input gestures to your command)
您需要编写一些代码来获取您的选择并将其包装在 InlineUIContainer 中 - 这就是在富文本框中获取控件的方式:
You'll need to write some code that takes your selection and wraps it in an InlineUIContainer - that's how you get controls inside a rich text box: