gpt4 book ai didi

c# - Silverlight AutoCompleteBox 大写输入

转载 作者:行者123 更新时间:2023-12-02 05:33:59 25 4
gpt4 key购买 nike

我需要在 Silverlight 4 应用程序的 AutoCompleteBox 中强制输入大写字母。

在 TextBox 中,可以通过替换 KeyDown 事件上的 Text 属性来完成,例如:

            control.Text += enteredChar;
control.Select(control.Text.Length, 0); //To maintain caret position

但是AutoCompleteBox不提供文本选择功能,而且我没有找到将插入符移动到字符串末尾的方法。

最佳答案

您需要更改 AutoCompleteBox 模板并将 UpperCaseBehavior 添加到其中的 TextBox:

<TextBox x:Name="Text" ...>
<i:Interaction.Behaviors>
<behaviors:UpperCaseBehavior/>
</i:Interaction.Behaviors>
</TextBox>

其中 UpperCaseBehavior 是:

public class UpperCaseBehavior: Behavior<TextBox>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.TextChanged += AssociatedObject_TextChanged;
}

private void AssociatedObject_TextChanged(object sender, TextChangedEventArgs args)
{
var selectionStart = AssociatedObject.SelectionStart;
var selectionLength = AssociatedObject.SelectionLength;

AssociatedObject.Text = AssociatedObject.Text.ToUpper();

AssociatedObject.SelectionStart = selectionStart;
AssociatedObject.SelectionLength = selectionLength;
}

protected override void OnDetaching()
{
AssociatedObject.TextChanged -= AssociatedObject_TextChanged;
base.OnDetaching();
}
}

关于c# - Silverlight AutoCompleteBox 大写输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705049/

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