如何解决如何在Xamarin中将控制模板与android / ios特定视图一起使用
我希望在整个Xamarin应用程序中都有一个一致的页脚。
为了实现这一点,我在App.xaml类中有一个ControlTemplate
元素,定义如下:
<ControlTemplate x:Key="MainPageTemplate">
<StackLayout>
<ContentPresenter VerticalOptions="FillAndExpand" />
.
.
.
</StackLayout>
</ControlTemplate>
然后在ContentPage标记内使用ControlTemplate="{StaticResource MainPageTemplate}"
在xaml窗口中引用它。
但是,我有两个页面不是常规的内容页面,因为它们都是以特定于平台的方式实现的,一个页面带有.axml文件(.Android项目),另一个带有情节提要文件(.iOS项目)。
是否有一种方法可以让这些文件使用Xamarin ControlTemplate,因此即使视图的其余部分特定于平台,页脚仍会出现在视图的底部?
解决方法
我们无法将文件从特定平台直接引用到xaml。在您的情况下,如果您想在不同的平台上实现不同的效果,则可以使用 Device 类,如下所示:
<StackLayout>
<StackLayout.Margin>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS" Value="0,20,0" />
<On Platform="Android,UWP" Value="0,0" />
</OnPlatform>
</StackLayout.Margin>
...
</StackLayout>
有关更多详细信息,请参阅https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/device。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。