支持多行输入和回车发送

This commit is contained in:
PeterZhong 2025-06-16 00:35:56 +08:00
parent 805293e80f
commit ab78de8078
2 changed files with 41 additions and 1 deletions

View File

@ -61,7 +61,7 @@
<ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="48"></ColumnDefinition> <ColumnDefinition Width="48"></ColumnDefinition>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Name="QuestionTextbox" Text="这是用户的问题" TextWrapping="Wrap"></TextBox> <TextBox Grid.Column="0" Name="QuestionTextbox" Text="" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" PreviewKeyDown="QuestionTextbox_OnPreviewKeyDown"></TextBox>
<Button Grid.Column="1" Name="SendButton" Content="发送" Click="SendButton_OnClick"></Button> <Button Grid.Column="1" Name="SendButton" Content="发送" Click="SendButton_OnClick"></Button>
</Grid> </Grid>
</Grid> </Grid>

View File

@ -2,6 +2,7 @@ using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel; using System.ComponentModel;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
@ -14,6 +15,7 @@ using Microsoft.Extensions.Logging;
using System.Text.Json; using System.Text.Json;
using System.Threading; using System.Threading;
using System.Windows.Documents; using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Core.Geoprocessing; using ArcGIS.Desktop.Core.Geoprocessing;
@ -639,5 +641,43 @@ namespace LinkToolAddin.ui.dockpane
string model = ModelComboBox.SelectedValue.ToString(); string model = ModelComboBox.SelectedValue.ToString();
log.Info(model); log.Info(model);
} }
private void QuestionTextbox_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
// Shift + Enter: 插入换行
QuestionTextbox.SelectedText = Environment.NewLine;
e.Handled = true;
}
else
{
// Enter: 触发发送
e.Handled = true;
SendButton_OnClick(sender, null);
}
}
}
private void QuestionTextbox_OnPreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
// Shift + Enter: 插入换行
QuestionTextbox.SelectedText = Environment.NewLine;
e.Handled = true;
}
else
{
// Enter: 触发发送
e.Handled = true;
SendButton_OnClick(sender, null);
}
}
}
} }
} }