private View NameEntryView() { var lblTitle = new Label() { FontSize = Sizes.TextMicro, Text = AppText.profile_name_header, TextColor = Colors.TextFaded, }; var entry = new Entry() { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Center, TextColor = Colors.TextSpecial, FontAttributes = FontAttributes.Bold, BackgroundColor = Color.Transparent, FontSize = Sizes.Title, Keyboard = Keyboard.Text, IsSpellCheckEnabled = false, }; entry.SetBinding(Entry.TextProperty, nameof(ViewModel.Name)); entry.AddTouch((sender, args) => { entry.Focus(); }); var pen = new SvgCachedImage() { HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.Center, HeightRequest = Sizes.Title, WidthRequest = Sizes.Title, Aspect = Aspect.AspectFit, Source = Images.ProfilePen, }; pen.AddTouch((sender, args) => { entry.Focus(); }); entry.Focused += (sender, args) => { pen.IsVisible = false; entry.InputTransparent = false; // crude fix to place cursor at end of text var text = entry.Text; entry.Text = ""; entry.Text = text; }; entry.Unfocused += (sender, args) => { pen.IsVisible = true; entry.InputTransparent = true; }; return(new StackLayout() { Spacing = Device.RuntimePlatform == Device.Android ? -5 : 0, Children = { lblTitle, new Grid() { ColumnDefinitions = new ColumnDefinitionCollection() { new ColumnDefinition() { Width = GridLength.Star }, new ColumnDefinition() { Width = GridLength.Auto }, }, Children = { { entry, 0, 0 }, { pen, 1, 0 }, } }, } }); }