首页 > 解决方案 > Xamarin 的表单 Date Picker android 图标有点偏

问题描述

我正在尝试在 xarmain 表单输入框附近放置一个带有日历图像的同步按钮。

但是到目前为止我尝试过的有点不协调。

<Label Text="Please select a start date below"></Label>
 <StackLayout Orientation="Horizontal">
 <Entry x:Name="txtDateStartEntry" WidthRequest="200" ></Entry>
 <syncfusion:SfButton x:Name="btnPickStartDate" CornerRadius="10"  HorizontalTextAlignment="Start" ShowIcon="True" Clicked="btnPickStartDate_Clicked"  FontSize="24" BorderThickness="2" TextColor="White"  BackgroundColor="White"  Text="..."  >
<syncfusion:SfButton.Content>
  <Grid ColumnDefinitions="Auto, *, Auto"  ColumnSpacing="16" Padding="16">
  <Image Grid.Column="1" HorizontalOptions="End" WidthRequest="30" HeightRequest="30" Source="cal16.png" VerticalOptions="End"/>
   </Grid>
  </syncfusion:SfButton.Content>
  </syncfusion:SfButton>
</StackLayout>

我已经完成的是这个。

在此处输入图像描述

正如您所看到的,它离输入字段有点远,看起来并不属于它。

标签: xamarin.forms

解决方案


如果您使用的是 Syncfusion,您应该使用SfTextInputLayout,它提供前导/尾随视图功能,以明确将描述性图标添加到输入视图。

代码示例假定导入以下内容xmlns

xmlns:sftl="clr-namespace:Syncfusion.XForms.TextInputLayout;assembly=Syncfusion.Core.XForms"
<sftl:SfTextInputLayout TrailingViewPosition="Inside">
  <Entry x:Name="txtDateStartEntry" WidthRequest="200" />
  <sftl:SfTextInputLayout.TrailingView>
    <Image HeightRequest="30" Source="cal16.png">
      <Image.GestureRecognizers>
        <TapGestureRecognizer Tapped="btnPickStartDate_Clicked" />
      </Image.GestureRecognizers>
    </Image>
  <sftl:SfTextInputLayout.TrailingView>
</sftl:SfTextInputLayout>

注意:使用LeadingView 或TrailingView 时,建议不要分配Width 值,因为Syncfusion 会根据您要求的高度计算宽度,以保持指定视图的纵横比。因此,我故意HeightRequestImage.


推荐阅读