2017-10-16 99 views
1

enter image description hereXamarin:输入与图标:文本重叠

所以我对我这到底XAML文件,我想是我想要的条目的文本不被身后/与图标本身重叠。

为了实现右边的图标,我有两列:一个用于输入和一个用于

我设置的条目的Grid.ColumnSpan="2"并设置图标HorizontalOptions="End"的图标,但项的文本在我的图标后面,我如何防止这种情况发生?如果需要更多信息,请不要犹豫,问我。谢谢!

EDIT1:下面的代码

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Entry Grid.Column="0" Grid.ColumnSpan="2" IsPassword="True"/> 
    <Image Source="eye.png" Grid.Column="1" Grid.ColumnSpan="1"/> 
</Grid> 
+0

在这里添加你的代码,你已经尝试过。 –

+0

我不明白你到底是什么意思,但我想你尝试重叠图标的条目。你尝试过Absolutelayout吗? – batmaci

+0

@batmaci我有一个入口和一个图标。我想将图标与条目重叠,但不完全是条目的内容。就像我在图片中发布的内容一样,您可以看到条目的内容位于图标本身后面,我不希望发生这种情况。入口是否有填充? –

回答

0

试试这个:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 
    <Entry Grid.Column="0" IsPassword="True"/> 
    <Image Source="eye.png" Grid.Column="1" /> 
</Grid> 
3

更改网格宽*为自动

<Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="Auto"/> 
     </Grid.ColumnDefinitions> 
     <Entry Grid.Column="0" IsPassword="True"/> 
     <Image Grid.Column="1" Source="eye.png" WidthRequest="50" HeightRequest="50" /> 
    </Grid> 

OR

尝试堆栈布局,而不是网格

<StackLayout Orientation="Horizontal" Spacing="0"> 
    <Entry IsPassword="True" HorizontalOptions="FillAndExpand"/> 
    <Image Source="eye.png" WidthRequest="50" HeightRequest="50"/> 
</StackLayout> 
+0

虽然这工作,所以为了使图像有一个边框,我在它下面添加了一个boxview,但是,它的结果,当图像被点击时,它闪烁。为什么我想要条目(有点重叠图像),以便它会继承条目的边框。 –

+0

没有得到你。点击时图像是否闪烁 –

+0

是的,它闪烁,图像下方的边框在点击时闪烁。 –

0

因此,这里是我所做的:

跨平台XAML文件:

<StackLayout Orientation="Horizontal" Spacing="0"> 
    <Entry HorizontalOptions="FillAndExpand" IsPassword="True"/> 
    <Image Source="{Binding ImageSource}" 
          HorizontalOptions="End" Margin="5,0,0,0" 
          HeightRequest="20" 
          WidthRequest="20"> 
         <Image.GestureRecognizers> 
          <TapGestureRecognizer Command="{Binding MaskCommand}"/> 
         </Image.GestureRecognizers> 
     </Image> 
<StackLayout> 

Android的渲染:

Control?.SetBackgroundColor(Android.Graphics.Color.Transparent); 

我都试过后,我会及时更新在iOS和UWP上。