所以我在我的头上有这个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 :(得分:4)
将网格宽度*更改为自动
<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>
尝试堆叠布局而不是网格
<StackLayout Orientation="Horizontal" Spacing="0">
<Entry IsPassword="True" HorizontalOptions="FillAndExpand"/>
<Image Source="eye.png" WidthRequest="50" HeightRequest="50"/>
</StackLayout>
答案 1 :(得分: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>
答案 2 :(得分: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上尝试后会更新此内容。