gpt4 book ai didi

c# - 如何在 WPF 组合框中找到插入符位置?

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:25 26 4
gpt4 key购买 nike

由于 WPF Combobox 没有像 C# 中的 Textbox 和 SelectionStart 属性那样的 CaretIndex 属性,我想知道如何获取我的 WPF Combobox 控件的插入符索引?

谢谢你们。

最佳答案

虽然您可以从它的子控件中获取它,但它不能直接访问。您需要从组合框的控件模板中获取 PART_EditableTextBox 控件。执行此操作的最简单方法是在 ComboBox 的派生中覆盖 OnApplyTemplate,然后使用该派生来订阅已更改的选择。然后就可以得到CaretIndex

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;
}
}

确保在你的处置或适当的地方取消对 SelectionChanged 的​​订阅

myTextBox .SelectionChanged -= OnDropSelectionChanged;

关于c# - 如何在 WPF 组合框中找到插入符位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com