是否可以创建多平台自定义用户控件而无需在 Xamarin.Forms 中使用自定义呈现?
Is it possible to create a multi-platform custom user control without having to use custom renders in Xamarin.Forms?
总的来说,我对 Xamarin 还很陌生,我正在使用 Xamarin.Forms。我需要创建在 Android 和 iOS 中看起来相同的单个可重用 controls/ui 组件。以下图为例:
我需要一个在 Android 和 iOS 上看起来完全一样的按钮。经过一些研究后我发现的方法是创建自定义渲染。这样看来控件的一些东西可以根据平台进行修改。
但是我想知道是否有另一种方法不需要在特定于平台的项目中使用额外的逻辑。我可以完全在 Xamarin.Forms 项目中实现吗?此外,按钮只是一个示例,我需要对输入字段、标签、日历、单选按钮、复选框等执行此操作。
在一定程度上取决于功能,但一般来说,您只能在 XAML(和代码)中创建跨平台控件,而不能使用自定义渲染器。
例如,这样的按钮可能如下所示:(此代码示例仅在 XAML 中创建一个圆形按钮)
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:models="clr-namespace:XamDevSummit.Models"
x:Class="XamDevSummit.Controls.FabButton">
<ContentView.Content>
<Grid RowSpacing="0" ColumnSpacing="0"
HeightRequest="50" WidthRequest="50"
VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Button x:Name="Fab"
CornerRadius="25" BackgroundColor="Olive"
Text="{x:Static models:IconFont.XamarinOutline}"
Command="{Binding ChatCommand}"
Style="{StaticResource MaterialButton}" />
</Grid>
</ContentView.Content>
</ContentView>
关于您列出的其他控件,就像我说的,一切都取决于对外观和感觉的需求。有些事情只有使用自定义渲染器才能实现。
总的来说,我对 Xamarin 还很陌生,我正在使用 Xamarin.Forms。我需要创建在 Android 和 iOS 中看起来相同的单个可重用 controls/ui 组件。以下图为例:
我需要一个在 Android 和 iOS 上看起来完全一样的按钮。经过一些研究后我发现的方法是创建自定义渲染。这样看来控件的一些东西可以根据平台进行修改。
但是我想知道是否有另一种方法不需要在特定于平台的项目中使用额外的逻辑。我可以完全在 Xamarin.Forms 项目中实现吗?此外,按钮只是一个示例,我需要对输入字段、标签、日历、单选按钮、复选框等执行此操作。
在一定程度上取决于功能,但一般来说,您只能在 XAML(和代码)中创建跨平台控件,而不能使用自定义渲染器。
例如,这样的按钮可能如下所示:(此代码示例仅在 XAML 中创建一个圆形按钮)
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:models="clr-namespace:XamDevSummit.Models"
x:Class="XamDevSummit.Controls.FabButton">
<ContentView.Content>
<Grid RowSpacing="0" ColumnSpacing="0"
HeightRequest="50" WidthRequest="50"
VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Button x:Name="Fab"
CornerRadius="25" BackgroundColor="Olive"
Text="{x:Static models:IconFont.XamarinOutline}"
Command="{Binding ChatCommand}"
Style="{StaticResource MaterialButton}" />
</Grid>
</ContentView.Content>
</ContentView>
关于您列出的其他控件,就像我说的,一切都取决于对外观和感觉的需求。有些事情只有使用自定义渲染器才能实现。