Textbox可以通过配置以下属性来自动换行AcceptsReturn和TextWrapping
<TextBox VerticalScrollBarVisibility="Auto" FontStyle="Normal" Name="txtBoxInputMsg" FontWeight="Bold" TextWrapping="Wrap" AcceptsReturn="True" BorderThickness="0" />
TextBox捕获键盘事件KeyDown
<TextBox VerticalScrollBarVisibility="Auto" KeyDown="txtBoxInputMsg_KeyDown" TextWrapping="Wrap" AcceptsReturn="True" BorderThickness="0" />
后台代码
// 当同时按下Enter和Ctrl两个键时触发
private void txtBoxInputMsg_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter && (Keyboard.Modifiers & (ModifierKeys.Control)) == (ModifierKeys.Control))
{
}
}
实现同时按下shift键和Enter键时换行,还是通过KeyDown事件来捕获
private void txtBoxInputMsg_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter && (Keyboard.Modifiers & (ModifierKeys.Shift)) == (ModifierKeys.Shift))
{
// 添加一个换行字符
txtBoxInputMsg.SelectedText = Environment.NewLine;
// 光标向前移动一位
txtBoxInputMsg.Select(txtBoxInputMsg.SelectionStart + 1, 0);
e.Handled = true;
}
else if (e.Key == Key.Enter)
{
}
}