我正在尝试了解Xamarin的应用程序构建。我正在尝试构建一个Win8应用程序,我希望有一些由物理键盘上的按键触发的事件。在WPF中,您可以通过以下方式执行此操作:
<Window.InputBindings>
<KeyBinding Command="{Binding UpCommand}" Key="Up"/>
<KeyBinding Command="{Binding DownCommand}" Key="Down"/>
<KeyBinding Command="{Binding LeftCommand}" Key="Left"/>
<KeyBinding Command="{Binding RightCommand}" Key="Right"/>
<KeyBinding Command="{Binding Pause}" Key="Space"/>
</Window.InputBindings>
在Xamarin页面中有什么替代方案?谢谢!
答案 0 :(得分:1)
我会尝试从评论中学到的东西做出完整的答案。请理解Xamarin和Xamarin.Forms之间确实存在差异,就像苹果和梨之间存在差异一样,虽然两者都是美味的水果。
Xamarin为您提供了两种编写应用程序的方法:
在传统方法中,您使用C#(或F#)将代码带到iOS,Android或Mac。这可能是因为Mono。您必须了解所有目标平台的特定于平台的API。您为每个平台编写UI相关部分并重用您的业务逻辑。如果您想要定位Windows平台,则不需要任何特定的Xamarin。
然后有Xamarin.Forms:Xamarin提供的一个框架,它允许您抽象UI层并使用UI模型,并将其转化为平台特定功能。您不必再处理特定于平台的API。它也使用Mono来定位iOS和Android。但是,它使用Microsoft .NET来定位Windows Phone,Windows 8和UWP。
为什么这种差异很重要?因为它告诉我们有两种方法可以使应用程序跨平台兼容。您的问题是关于Win8的,并给出正确的答案,这对您使用的技术至关重要。您要求的是一个不存在的功能,因为Xamarin与Win8无关。因此,一个可能的答案是:您不必使用Xamarin,只需使用Microsoft提供给您的工具。
解释上面的评论,我现在明白你想要使用Xamarin.Forms并且问你KeyBinding
的XAML对应物是什么。开箱即用的表格中不支持此功能。 Forms的思想是在所有可能的平台上抽象UI。 iOS没有键盘,大多数Android设备也没有键盘。这意味着在您的情况下,您将必须使用Forms使用的平台特定项目。其中一个是Win8项目,您可以使用最初发布的代码。然后,您必须将命令转发到共享代码中以进行进一步处理。