C# 选择组合框文本时,将光标更改为方形
我在WPF中有一个可编辑的组合框,它的工作方式是,若文本被选中(高亮显示),光标应该变成十字,这样用户就可以知道他可以将文本移动到另一个组合框中,若用户尝试编辑,光标应该是编辑光标 下面是我正在尝试的代码,关于焦点事件C# 选择组合框文本时,将光标更改为方形,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我在WPF中有一个可编辑的组合框,它的工作方式是,若文本被选中(高亮显示),光标应该变成十字,这样用户就可以知道他可以将文本移动到另一个组合框中,若用户尝试编辑,光标应该是编辑光标 下面是我正在尝试的代码,关于焦点事件 private void LocationComboBox_GotFocus(object sender, RoutedEventArgs e) { ComboBox combo = (System.Windows.Controls.ComboBox
private void LocationComboBox_GotFocus(object sender, RoutedEventArgs e)
{
ComboBox combo = (System.Windows.Controls.ComboBox)sender;
var edit = (TextBox)combo.Template.FindName("PART_EditableTextBox", combo);
var selectedText = edit.SelectedText;
if (!string.IsNullOrEmpty(selectedText))
{
Cursor = Cursors.Cross;
}
else
{
Cursor = Cursors.Arrow;
}
}
这是屏幕截图
在快照中,由于德克萨斯州奥斯汀高亮显示,我的光标应该是十字
提前谢谢你 使用以下代码:
private void cmb_Loaded(object sender, RoutedEventArgs e)
{
TextBox TxtBox = (TextBox)cmb.Template.FindName("PART_EditableTextBox", cmb);
if (TxtBox != null)
{
TxtBox.SelectionChanged += TxtBox_SelectionChanged;
}
}
void TxtBox_SelectionChanged(object sender, RoutedEventArgs e)
{
var TxtBox = sender as TextBox;
if (TxtBox != null && !string.IsNullOrEmpty(TxtBox.SelectedText))
{
Mouse.OverrideCursor = Cursors.Cross;
}
else
{
Mouse.OverrideCursor = Cursors.Arrow;
}
}
使用以下代码:
private void cmb_Loaded(object sender, RoutedEventArgs e)
{
TextBox TxtBox = (TextBox)cmb.Template.FindName("PART_EditableTextBox", cmb);
if (TxtBox != null)
{
TxtBox.SelectionChanged += TxtBox_SelectionChanged;
}
}
void TxtBox_SelectionChanged(object sender, RoutedEventArgs e)
{
var TxtBox = sender as TextBox;
if (TxtBox != null && !string.IsNullOrEmpty(TxtBox.SelectedText))
{
Mouse.OverrideCursor = Cursors.Cross;
}
else
{
Mouse.OverrideCursor = Cursors.Arrow;
}
}