我正在尝试使用Caliburn.Micro(用于我的第一个WPF MVVM项目),并且我正在努力使WindowManager.ShowPopup方法将焦点设置为弹出屏幕。这可能吗?来自Caliburn的示例HelloWindowManager也没有这样做,并且文档非常轻。Caliburn.Micro ShowPopup - 设置焦点
2
A
回答
1
最终,我无法让ShowPopup
方法正常工作。
我做的改为使用ShowWindow
,然后在显示窗口时使用EventAggregator发布事件。在的ViewModel中调用 View,我订阅了该事件,并将ViewModel上的属性设置为true(在本例中为KeywordEntryActive)。
然后我在网格上使用一个样式,该样式使用绑定到该属性的DataTrigger来调用View中的FocusManager.FocusedElement方法。
<Grid.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding KeywordEntryActive}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Command}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
它似乎比我预期的那么简单,但我能做到什么,我一直在寻找在不牺牲视图模型和视图的分离,所以我很满意它在这一点上。 Caliburn.Micro有一些学习曲线,但到目前为止,我已经能够克服我遇到的困难,并且我正在继续走下去。
相关问题
- 1. Angularjs设置焦点
- 2. 如何在使用Caliburn.Micro时设置Silverlight中表单的初始焦点
- 3. 在ASP中设置焦点
- 4. 将焦点设置secondViewController
- 5. 设置焦点在android
- 6. 按ID设置焦点角
- 7. WPF:无法设置焦点
- 8. wpf设置焦点问题
- 9. 设置初始焦点
- 10. 将焦点设置为PanoramaItem
- 11. 设置焦点后jAlert
- 12. 将焦点设置为UITabBarItem
- 13. 为用户设置焦点
- 14. 当OnClientClick =“ShowPopup()
- 15. jQuery |将焦点设置为输入(固定焦点)
- 16. AspNet设置焦点()的作品,但:焦点样式不适用
- 17. 防止视图偷取焦点/设置焦点到视图
- 18. Caliburn.Micro将如何处理在Silverlight 5中设置断点
- 19. SAPUI5将焦点设置输入字段
- 20. 如何在Elm中设置焦点?
- 21. 无法设置元素的焦点
- 22. 焦点设置的一个ASP.Net LoginView
- 23. 设置焦点回发由javascript发起
- 24. 将焦点设置文本框在WPF
- 25. 将焦点设置到其他控件
- 26. 将焦点设置到DataGridView行
- 27. 在VueJS中设置组件焦点
- 28. 如何将焦点设置控制
- 29. 将焦点设置为IE中的iFrame
- 30. 替代模糊()设置窗口焦点?
你想让你的弹出框为模态吗? – 2013-05-02 16:40:43
想知道是否在某个弹出窗口控件上调用'Focus'会起作用(我不认为有一种方法专注于实际的弹出窗口本身)。如果是这样,你可以创建一些功能来查看视图上的名称元素(使用'IViewAware.GetView()'),并在虚拟机已经安装后进行聚焦。 – Charleh 2013-05-02 16:49:25
我最终得到了ShowWindow(不是ShowPopup)的组合并且使用EventAggregator将事件发布到被调用的窗口的ViewModel ...在那里我设置了一个属性并在视图上使用了一个DataTrigger来设置焦点的FocusManager。它可能是黑客,但它似乎工作。 – fussmonkey 2013-05-02 19:56:46