我是 Caliburn.Micro 的新手,所以我希望有人可以在这里帮助我:)。
我试图在我的 Windows 8 应用程序中使用 MessageBinder.SpecialValues,但我无法让它工作。我正在添加一个新的“$pointerPercentage”来了解鼠标在元素内的位置(对于我的合成器应用程序中的音乐键盘)的百分比(在 0.0 和 1.0 之间浮动)。其他一切目前都在工作(所以我相信我已经正确连接了 Caliburn.Micro)。
我已将以下内容添加到我的 App.xaml.cs 的 Configure 方法中:
protected override void Configure()
{
container = new WinRTContainer();
container.RegisterWinRTServices();
MessageBinder.SpecialValues.Add("$pointerPercentage", ctx =>
{
return 1.0f;
});
}
然后我在 Canvas 元素中的 PointerMoved 事件中使用它:
<Canvas x:Name="keyCanvas" Background="#338B8BDC"
cal:Message.Attach="[Event PointerMoved] = [Action UpdateKeyboard($pointerPercentage)]" />
我的 ViewModel 中的 UpdateKeyboard 方法确实被触发(我用调试器闯入它),但传入的参数始终是 0.0f(不是上面 SpecialValues 代码中设置的 1.0f)。
我究竟做错了什么?任何帮助,将不胜感激 :)。