Skip to content
Shiny Controls v1.0 - The Ultra Control Suite for .NET MAUI & BlazorO...M...G!

CountryPicker

A country search control built on AutoCompleteEntry with flag emoji display, country name, and dial code. Searches all ISO 3166-1 countries with instant local filtering.

  • NuGet downloads for Shiny.Maui.Controls
  • NuGet downloads for Shiny.Blazor.Controls
Frameworks
.NET MAUI
Blazor
MAUI — empty Blazor — with selection Blazor — type-ahead
CountryPicker on MAUI with no country selected CountryPicker on Blazor with a country selected Typing filters the country list by name on Blazor
<shiny:CountryPicker SelectedCountry="{Binding Country}"
Placeholder="Select country..." />

The dropdown shows each country’s flag emoji, name, and dial code. Selecting a country displays the flag next to the input text.

Property Type Default Description
SelectedCountry Country? null Selected country (TwoWay)
Placeholder string "Search countries..." Placeholder text
MaxDropDownHeight double 200 Maximum dropdown height
TextColor Color? / string? null Text color
PlaceholderColor Color? / string? null Placeholder color
DropDownBackgroundColor Color? / string? null Dropdown background
DropDownBorderColor Color? / string? null Dropdown border color
SpinnerColor Color? / string? null Loading spinner color
FontSize double 14 Font size
FontFamily string? null Font family (MAUI only)
CornerRadius double 4 Dropdown corner radius (MAUI only)
Event Args Description
CountrySelected Country Fires when a country is selected

The Country record provides:

Property Type Description
Name string Country name (e.g. “United States”)
Iso2 string ISO 3166-1 alpha-2 code (e.g. “US”)
Iso3 string ISO 3166-1 alpha-3 code (e.g. “USA”)
DialCode string International dial code (e.g. “+1”)
FlagEmoji string Flag emoji (e.g. “🇺🇸”)
<shiny:CountryPicker SelectedCountry="{Binding Country}"
FontSize="18"
TextColor="Black"
PlaceholderColor="DarkGray"
DropDownBackgroundColor="#F9FAFB"
DropDownBorderColor="#6B7280"
CornerRadius="12" />
<CountryPicker SelectedCountry="@selectedCountry"
SelectedCountryChanged="OnCountryChanged"
Placeholder="Select country..."
FontSize="16"
TextColor="#333"
InputClass="my-input"
DropDownClass="my-dropdown" />
@code {
Country? selectedCountry;
void OnCountryChanged(Country? country)
{
selectedCountry = country;
}
}
Property Type Default Description
InputClass string? null CSS class for the input element
DropDownClass string? null CSS class for the dropdown
public partial class MyViewModel : ObservableObject
{
[ObservableProperty] Country? selectedCountry;
partial void OnSelectedCountryChanged(Country? value)
{
if (value is not null)
{
Console.WriteLine($"Selected: {value.Name} ({value.DialCode})");
}
}
}
claude plugin marketplace add shinyorg/skills
claude plugin install shiny@shiny

One plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.

copilot plugin marketplace add https://github.com/shinyorg/skills
copilot plugin install shiny@shiny

One plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.

View shiny-controls Skill