衍生在WPF应用控制空格键时,我有已经从文本框衍生这样的控制:WPF:的onkeydown()没有被调用用于从WPF文本框
public class SelectableTextBlock : TextBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
e.Handled = false;
}
}
中,onKeyDown方法没有在向TextBox输入空格时调用,也不是在按Backspace时触发,而是为包括普通可打印字符(例如'a')和修饰键(例如)在内的其他输入触发。
我将此控件与IsReadOnly设置为true,因此我可以显示可选择的,不可编辑的文本。在WPFToolkit的DataGrid中使用的控件,并且我希望KeyDown事件向上传播数据网格,即使SelectableTextBlock具有焦点,这就是为什么我使用自定义控件将事件明确标记为未处理的原因。
问题是,事件甚至没有使我的控制某些键。我不能仅仅在DataGrid中使用OnPreviewKeyDown来解决这个问题,因为我确实希望数据网格中使用的其他控件吞下空间KeyDown事件。
有谁知道我怎么可以得到空间键传播的KeyDown事件?
谢谢。
感谢您的回复,Wim。 这看起来像一个相关的问题。我发现事件不会触发空格字符和退格键并删除按键。 而在你的情况下,你试图停止空格键被文本框处理,并通过处理预览,我试图让事件冒泡到父级控制,所以这不适用于我。 我有一个解决办法处理处理关键事件并将其设置为处理。我会在回复我的原始问题时发布一般感兴趣的代码。仍然认为必须有更好的方法。 谢谢,E. – Ergwun 2009-09-23 00:36:37
这应该是这样写的:“我有一个解决办法来处理关键事件,并将它们设置为* unhandled *。 – Ergwun 2009-09-30 00:35:23