Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选择项目后如何从自动完成框中移动焦点?_C#_.net_Wpf_Wpftoolkit - Fatal编程技术网

C# 选择项目后如何从自动完成框中移动焦点?

C# 选择项目后如何从自动完成框中移动焦点?,c#,.net,wpf,wpftoolkit,C#,.net,Wpf,Wpftoolkit,在我的应用程序中,用户可以将项目添加到列表框。我希望用户能够在从AutoCompleteBox中选择一个新项目后,通过再次按下Return键来添加该项目。我认为在Add按钮上将IsDefault属性设置为True就足够了 这是主窗口代码的外观: <ListBox Name="listBox1" /> <Button Name="button1" Content="Add" IsDefault="True" Click="button1_Click" /> <my

在我的应用程序中,用户可以将项目添加到
列表框
。我希望用户能够在从
AutoCompleteBox
中选择一个新项目后,通过再次按下Return键来添加该项目。我认为在
Add
按钮上将
IsDefault
属性设置为
True
就足够了

这是主窗口代码的外观:

<ListBox Name="listBox1" />

<Button Name="button1" Content="Add" IsDefault="True" Click="button1_Click" />

<my:AutoCompleteBox Name="autoCompleteBox1" 
                IsTextCompletionEnabled="True"
                PreviewKeyDown="autoCompleteBox1_PreviewKeyDown"/>

但是这个按钮没有获得焦点。如何将焦点从
自动完成框中移开?

使用KeyUp事件。在改变焦点的周期中,按下键太早了。

谢谢@Blam的帮助。如何标记为答案?将我的评论作为答案发布。谢谢
public partial class MainWindow : Window
{
    ObservableCollection<string> myCollection = new ObservableCollection<string>();

    public MainWindow()
    {
        InitializeComponent();

        listBox1.ItemsSource = myCollection;
        autoCompleteBox1.ItemsSource = new string[] { "item1", "item2", "item3", "item4", "item5" };
    }

    private void autoCompleteBox1_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Return)
        {
            button1.Focus(); 
        }
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        if (autoCompleteBox1.SelectedItem != null)
            myCollection.Add((string)autoCompleteBox1.SelectedItem);
    }
}