防止WPF TextBox显示在多行上

Eri*_* J. 3 wpf word-wrap

我有一个WPF TextBox,用于接受一个搜索词,当用户点击Enter键时(以TextBox为中心),用该搜索词做一些事情.

由于无法解释的原因,TextBox允许输入多行文本.

我已TextWrappingNoWrap,并MaxLines1.关联的事件处理程序指示它在Environment.NewLine终止文本时处理事件.

除了包装外,其他一切都按预期工作.如何防止文本换行?

<TextBox Height="23" Margin="24,1,12,0" Name="txtSearch" VerticalAlignment="Top" TextWrapping="NoWrap" Visibility="Visible" MinWidth="50" LostFocus="txtSearch_LostFocus" AcceptsReturn="True" TextChanged="txtSearch_TextChanged" MaxLines="1" />


private void txtSearch_TextChanged(object sender, TextChangedEventArgs e)
{
    if (txtSearch.Text.EndsWith(Environment.NewLine))
    {
        string search = txtSearch.Text.Replace(Environment.NewLine, string.Empty);
        e.Handled = true;

        MainViewModel vm = (MainViewModel)this.FindResource("viewModel");
        vm.SearchText = search;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rac*_*hel 6

你的意思是当你按Enter键时它会包裹吗?或者当文本太长时?

你有AcceptsReturn="True",这意味着用户可以使用TextBox中的Enter键来创建换行符.尝试将其设置为False.