我有一个WPF TextBox,用于接受一个搜索词,当用户点击Enter键时(以TextBox为中心),用该搜索词做一些事情.
由于无法解释的原因,TextBox允许输入多行文本.
我已TextWrapping到NoWrap,并MaxLines到1.关联的事件处理程序指示它在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)
你的意思是当你按Enter键时它会包裹吗?或者当文本太长时?
你有AcceptsReturn="True",这意味着用户可以使用TextBox中的Enter键来创建换行符.尝试将其设置为False.
| 归档时间: |
|
| 查看次数: |
4493 次 |
| 最近记录: |