当我按下回车键时,我试图让WPF AutoCompleteBox引发KeyDown事件.我正在使用普通的KeyDown钩子,它适用于除了输入键之外的所有内容.有谁知道我怎么解决这个问题?
Jay*_*Jay 10
您可以继承AutoCompleteBox
,为其添加事件Enter.
public class MyAutoCompleteBox : AutoCompleteBox
{
public override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if(e.Key == Key.Enter) RaiseEnterKeyDownEvent();
}
public event Action<object> EnterKeyDown;
private void RaiseEnterKeyDownEvent()
{
var handler = EnterKeyDown;
if(handler != null) handler(this);
}
}
Run Code Online (Sandbox Code Playgroud)
在您的消费类中,您可以订阅:
public void Subscribe()
{
autoCompleteBox.EnterKeyDown += DoSomethingWhenEnterPressed;
}
public void DoSomethingWhenEnterPressed(object sender)
{
}
Run Code Online (Sandbox Code Playgroud)
答案很晚,但是我遇到了同样的问题,这个问题让我想到了这个问题,最后用PreviewKeyDown解决了这个问题
<wpftoolkit:AutoCompleteBox Name="AutoCompleteBoxCardName"
Populating="LoadAutocomplete"
PreviewKeyDown="AutoCompleteBoxName_PreviewKeyDown"/>
Run Code Online (Sandbox Code Playgroud)
和
private void AutoCompleteBoxName_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7288 次 |
最近记录: |