Watermark in Xamarin AutoComplete (SfAutoComplete)
22 Aug 202218 minutes to read
WaterMark in Xamarin SfAutocomplete
Watermark
provides a short note about the type of input to enter in the editor control. Watermarks are visible only if the text is empty. Also it will reappear if the text is cleared.
The following example, explains the usability of watermark which hints user to start with the character āUā.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:autocomplete="clr-namespace:Syncfusion.SfAutoComplete.XForms;assembly=Syncfusion.SfAutoComplete.XForms"
xmlns:ListCollection="clr-namespace:System.Collections.Generic;assembly=netstandard"
xmlns:local="clr-namespace:AutocompleteSample"
x:Class="AutocompleteSample.MainPage">
<StackLayout VerticalOptions="Start"
HorizontalOptions="Start"
Padding="30">
<autocomplete:SfAutoComplete
x:Name="autoComplete"
HeightRequest="40"
Watermark="Enter 'U' to filter suggestions">
<autocomplete:SfAutoComplete.AutoCompleteSource>
<ListCollection:List x:TypeArguments="x:String">
<x:String>Antigua and Barbuda</x:String>
<x:String>American Samoa</x:String>
<x:String>Afghanistan</x:String>
<x:String>Antarctica</x:String>
<x:String>Argentina</x:String>
<x:String>Anguilla</x:String>
<x:String>Albania</x:String>
<x:String>Algeria</x:String>
<x:String>Andorra</x:String>
<x:String>Angola</x:String>
</ListCollection:List>
</autocomplete:SfAutoComplete.AutoCompleteSource>
</autocomplete:SfAutoComplete>
</StackLayout>
</ContentPage>
using Syncfusion.SfAutoComplete.XForms;
using System.Collections.Generic;
using Xamarin.Forms;
namespace AutocompleteSample
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
StackLayout stackLayout = new StackLayout()
{
VerticalOptions = LayoutOptions.Start,
HorizontalOptions = LayoutOptions.Start,
Padding = 30
};
SfAutoComplete autoComplete = new SfAutoComplete()
{
HeightRequest = 40,
Watermark = "Enter 'A' to filter suggestions",
AutoCompleteSource = new List<string>()
{
"Antigua and Barbuda",
"American Samoa",
"Afghanistan",
"Antarctica",
"Argentina",
"Anguilla",
"Albania",
"Algeria",
"Andorra",
"Angola"
}
};
stackLayout.Children.Add(autoComplete);
this.Content = stackLayout;
}
}
}
Changing Watermark Text Color
Text color of watermark can be customized using WatermarkColor
property.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:autocomplete="clr-namespace:Syncfusion.SfAutoComplete.XForms;assembly=Syncfusion.SfAutoComplete.XForms"
xmlns:ListCollection="clr-namespace:System.Collections.Generic;assembly=netstandard"
xmlns:local="clr-namespace:AutocompleteSample"
x:Class="AutocompleteSample.MainPage">
<StackLayout VerticalOptions="Start"
HorizontalOptions="Start"
Padding="30">
<autocomplete:SfAutoComplete
x:Name="autoComplete"
HeightRequest="40"
Watermark="Enter some text"
WatermarkColor="#1976d2">
<autocomplete:SfAutoComplete.AutoCompleteSource>
<ListCollection:List x:TypeArguments="x:String">
<x:String>Antigua and Barbuda</x:String>
<x:String>American Samoa</x:String>
<x:String>Afghanistan</x:String>
<x:String>Antarctica</x:String>
<x:String>Argentina</x:String>
<x:String>Anguilla</x:String>
<x:String>Albania</x:String>
<x:String>Algeria</x:String>
<x:String>Andorra</x:String>
<x:String>Angola</x:String>
</ListCollection:List>
</autocomplete:SfAutoComplete.AutoCompleteSource>
</autocomplete:SfAutoComplete>
</StackLayout>
</ContentPage>>
using Syncfusion.SfAutoComplete.XForms;
using System.Collections.Generic;
using Xamarin.Forms;
namespace AutocompleteSample
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
StackLayout stackLayout = new StackLayout()
{
VerticalOptions = LayoutOptions.Start,
HorizontalOptions = LayoutOptions.Start,
Padding = 30
};
SfAutoComplete autoComplete = new SfAutoComplete()
{
HeightRequest = 40,
Watermark = "Enter some text",
WatermarkColor = Color.FromHex("1976d2"),
AutoCompleteSource = new List<string>()
{
"Antigua and Barbuda",
"American Samoa",
"Afghanistan",
"Antarctica",
"Argentina",
"Anguilla",
"Albania",
"Algeria",
"Andorra",
"Angola"
}
};
stackLayout.Children.Add(autoComplete);
this.Content = stackLayout;
}
}
}
Focus the control
The autocomplete sets the user to focus the autocomplete textbox initially after the control gets rendered using IsFocused
property.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:autocomplete="clr-namespace:Syncfusion.SfAutoComplete.XForms;assembly=Syncfusion.SfAutoComplete.XForms"
xmlns:ListCollection="clr-namespace:System.Collections.Generic;assembly=netstandard"
xmlns:local="clr-namespace:AutocompleteSample"
x:Class="AutocompleteSample.MainPage">
<StackLayout VerticalOptions="Start"
HorizontalOptions="Start"
Padding="30">
<autocomplete:SfAutoComplete
x:Name="autoComplete"
HeightRequest="40"
Watermark="Enter 'A' to filter suggestions"
WatermarkColor="#1976d2"
IsFocused="True">
<autocomplete:SfAutoComplete.AutoCompleteSource>
<ListCollection:List x:TypeArguments="x:String">
<x:String>Antigua and Barbuda</x:String>
<x:String>American Samoa</x:String>
<x:String>Afghanistan</x:String>
<x:String>Antarctica</x:String>
<x:String>Argentina</x:String>
<x:String>Anguilla</x:String>
<x:String>Albania</x:String>
<x:String>Algeria</x:String>
<x:String>Andorra</x:String>
<x:String>Angola</x:String>
</ListCollection:List>
</autocomplete:SfAutoComplete.AutoCompleteSource>
</autocomplete:SfAutoComplete>
</StackLayout>
</ContentPage>
using Syncfusion.SfAutoComplete.XForms;
using System.Collections.Generic;
using Xamarin.Forms;
namespace AutocompleteSample
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
StackLayout stackLayout = new StackLayout()
{
VerticalOptions = LayoutOptions.Start,
HorizontalOptions = LayoutOptions.Start,
Padding = 30
};
SfAutoComplete autoComplete = new SfAutoComplete()
{
HeightRequest = 40,
Watermark = "Enter 'A' to filter suggestions",
WatermarkColor = Color.FromHex("#1976d2"),
IsFocused = true,
AutoCompleteSource = new List<string>()
{
"Antigua and Barbuda",
"American Samoa",
"Afghanistan",
"Antarctica",
"Argentina",
"Anguilla",
"Albania",
"Algeria",
"Andorra",
"Angola"
}
};
stackLayout.Children.Add(autoComplete);
this.Content = stackLayout;
}
}
}
NOTE
You can refer to our Xamarin AutoComplete feature tour page for its groundbreaking feature representations. You can also explore our Xamarin.Forms AutoComplete example to knows the functionalities of each feature.