有一个普通的 TextBox 用于写入文本。我需要以下内容:
我用鼠标选择了部分文本,然后单击“斜体”按钮,然后在文本选择开始之前添加 ,并<i>在选择结束时添加</i>。
问题:如何确定鼠标选择的文本以便进一步使用它?
UPD1:
我正在使用 MVVM + Catel,Catel.Fody 模型
我的观点:
<TextBox Grid.Row="2" Grid.Column="1" MaxLines="255"
AcceptsReturn="True"
AcceptsTab="True"
Text="{Binding Content, UpdateSourceTrigger=PropertyChanged}" TextChanged="OnTextChanged"
SelectedText="{Binding SelectedText, UpdateSourceTrigger=PropertyChanged}"/>
我的模型:
public ViewModel()
{
BoldText = new Command(OnBoldText);
ItalicText = new Command(OnItalicText);
}
public Command BoldText { get; set; }
public Command ItalicText { get; set; }
public string SelectedText { get; set; }
private void OnBoldText()
{
}
private void OnItalicText()
{
}
现在的问题是,如果我在视图中设置了一个 sv,SelecteedText那么程序中的选项卡就会停止打开。如果我删除这个 sv-in,那么一切正常。
我用这样的触发器做到了:(查看)
模型:
尚未测试,但应该可以工作:
您还需要考虑到,如果选择每个字母 1 个,则字符串中的每个字母实例都将被视为一个标签。因此,如果您想确保不会发生这种情况,您将需要使算法复杂化。