我有一個WPF文本框旨在接受搜索字詞,並在用戶點擊回車鍵(以TextBox爲焦點)時執行該搜索字詞的操作。防止在多行顯示WPF文本框
由於無法解釋的原因,該文本框允許輸入多行文本。
我已將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;
}
}
看到托馬斯發表評論。 –
@Eric J.您可以將事件連接到TextBox的'PreviewKeyDown',並且如果按下的鍵是回車鍵,則您將處理搜索。 – Rachel
完美,'PreviewKeyDown'是正確的事件來處理。 –