如何在 WPF 组合框中查找插入符号位置
本文关键字:查找 插入 符号 位置 WPF 组合 | 更新日期: 2023-09-27 18:34:40
由于 WPF Combobox 在 C# 中没有像 Textbox 和 SelectionStart 属性那样的 CaretIndex 属性,我想知道如何获取我的 WPF Combobox 控件的插入符号索引?
谢谢大家。
它不能直接访问 althoug 你可以从它的子控件中获取它。您需要从组合框的控件模板获取PART_EditableTextBox控件。执行此操作的最简单方法是在 ComboBox 的派生中重写 OnApplyTemplate,然后使用该派生订阅更改的选择。然后你可以得到插入符号索引
protected void override OnApplyTemplate()
{
var myTextBox = GetTemplateChild("PART_EditableTextBox") as TextBox;
if (myTextBox != null)
{
myTextBox .SelectionChanged += OnDropSelectionChanged;
}
}
private void OnDropSelectionChanged(object sender, RoutedEventArgs e)
{
var textbox = sender as TextBox;
if (textbox != null)
{
//you can write your own logic.
_carentIndex = textbox.CaretIndex;
}
}
确保取消检查到选择更改在您的处置或适当的位置
myTextBox .SelectionChanged -= OnDropSelectionChanged;