我正在将一个WPF应用程序移植到silverlight 2,并且遇到了一些目前在SL中缺少的WPF功能.任何人都可以帮我提供等价物或建议解决方法.
我想处理列表框中嵌入的文本框的点击和双击.WPF实现在列表框控件上使用PreviewMouseLeftButtonDown/Up.怎么能在Silverlight中完成,似乎在Silverlight中缺少PreviewMouseLeftButtonDown/Up.
我想在列表框中嵌入的文本框上处理按钮按下(F2 /删除).WPF实现在文本框控件上使用PreviewKeyDown,该控件作为项目嵌入在列表框中.似乎Silverlight中缺少PreviewKeyDown.似乎没有调用KeyDown事件处理程序.
我想根据某些自定义附加属性的值更改文本框的某些外观属性.WPF实现使用DataTrigger来执行此操作.怎么能在silverlight中完成.似乎在Silverlight中缺少DataTriggers.
我想根据包含文本框的列表框的实际宽度更改文本框的宽度.WPF实现使用RelativeSource绑定.什么是silverlight等价物,或解决方法.
对于第 1 项和第 2 项,访问这些输入事件的最佳方法是创建一个派生自内置 TextBox 的自定义 TextBox。然后你可以覆盖OnKeyDown和OnMouseLeftButton down。从那里您可以调用必要的代码,或者触发一个新事件。例如:
public class MyTextBox : TextBox
{
public event MouseButtonEventHandler MySpecialMouseLeftButtonDown;
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (MySpecialMouseLeftButtonDown != null)
{
MySpecialMouseLeftButtonDown(this, e);
}
base.OnMouseLeftButtonDown(e);
}
}
Run Code Online (Sandbox Code Playgroud)
与 OnKeyDown 类似。
| 归档时间: |
|
| 查看次数: |
2376 次 |
| 最近记录: |