我需要支持雙擊的TextBox,但在嘗試編碼時,我堅持使用Silverlight文本框不會引發鼠標左鍵事件,如果我單擊文本區域內部的問題。那麼這裏有什麼可能的解決方案我使用Silverlight 4左鍵單擊Silverlight文本框
0
A
回答
2
你應該創建一個從默認TextBox
繼承的自定義TextBox控件和重寫OnMouseLeftButtonUp
方法,像這樣的:如果你需要處理雙擊
public class MyTextBox : TextBox
{
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonUp(e);
// Do your stuff here
}
}
,它將更容易切換到引入點擊計數概念的Silverlight 5。下面是用於處理雙擊教程:http://www.silverlighthostingnews.com/index.php/archives/440 基本上,你將不得不這樣做:
if(e.ClickCount == 2) {...}
編輯:這裏是如何在Silverlight 4做:
- 創建自定義文本框是繼承默認TextBox類並覆蓋鼠標事件,像這樣:
-
public class DoubleClickTextBox : TextBox
{
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
// Do nothing
}
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
// Do nothing
}
}
在您的項目類中添加DoubleClickExtender class。
在您的代碼隱藏,附加到雙擊事件:
-
DoubleClickExtender dce = new DoubleClickExtender(textBox, 300)
dce.DoubleClick += new MyEventHandler(dce_DoubleClick);
0
您可以用這一個作弊的,雖然我沒有試過我自己
- 將文本框的模板更改爲具有透明覆蓋圖 isHitTestV isible = true
- 設置疊加層上的雙擊事件。
- 如果檢測單 點擊疊加,什麼也不做,讓IT泡沫通過
- 如果檢測到雙擊,設置
mousebuttoneventargs爲true處理該事件,並執行雙擊行動
請注意,雙擊Silverlight4並不是本機支持的,所以你必須想出一些方法來模擬它。
相關問題
- 1. wpf上下文菜單左鍵單擊
- 2. 上下文菜單左鍵單擊
- 3. Silverlight中的文本框ChildWindow單擊並選擇文本錯誤
- 4. Java MouseEvent左鍵單擊actionPerformed
- 5. 的MouseUp左鍵單擊
- 6. 在Silverlight中將右鍵單擊事件連接到所有文本框
- 7. WPF左鍵單擊文本菜單不會對第二次點擊
- 8. 允許單擊鼠標左鍵單擊鼠標右鍵或按Ctrl鍵單擊打開對話框
- 9. 左鍵打開按鈕文本菜單點擊
- 10. 如何區分左鍵單擊和左鍵單擊並拖動操作?
- 11. 禁用在組合框中右鍵單擊「Silverlight」彈出框
- 12. 如何啓用左鍵單擊拖動或右鍵單擊swt.browser
- 13. Flot - 檢測左鍵單擊並右鍵單擊
- 14. 右鍵單擊+左鍵單擊被認爲是拖放刪除
- 15. Cytoscape.js:強制中鍵單擊以表現爲左鍵單擊
- 16. 告訴TextEdit左鍵單擊「選定的文本」打開上下文菜單
- 17. Silverlight C# - 如何複製在文本框中單擊的文本行?
- 18. 在邊框外部檢測鼠標左鍵(單擊)WPF MVVM
- 19. jQuery - 左鍵單擊上下文菜單插件
- 20. 檢測Ctrl +左鍵單擊在Windows中
- 21. ListBox1左鍵單擊列表重複
- 22. 左鍵單擊後鏈接不工作
- 23. PyQT:禁用鼠標左鍵單擊
- 24. Windows 7左鍵單擊時鐘彈出
- 25. WPF DataGrid只在行上左鍵單擊
- 26. 右鍵單擊Silverlight 4應用程序中的列表框
- 27. 如何在Silverlight中設置右鍵單擊上下文菜單?
- 28. 右鍵單擊Silverlight 3 * in *瀏覽器
- 29. 如何禁用文本框內的鼠標右鍵單擊
- 30. MS Access禁用右鍵單擊特定文本框
那麼,切換到新版本不取決於我,但thx的解決方案,我猜會使用它。 – noaRAVE 2012-07-24 12:40:26
在SL4中有兩種方法可以處理雙擊,但它更加黑客。這裏是你可以做的:http://www.domagoj.pavlesic.com/DoubleClick-in-Silverlight – 2012-07-24 12:50:36
我編輯了答案,告訴你如何在SL4中做到這一點 – 2012-07-24 13:13:31