{"id":"8a2d1270-231c-447e-8120-ef99847351a8","shortId":"tyhVMM","kind":"skill","title":"syncfusion-maui-radio-button","tagline":"Implements Syncfusion .NET MAUI Radio Button (SfRadioButton) for mutually exclusive selection controls. Use when implementing radio buttons, selection controls with mutually exclusive options, or grouped radio buttons in .NET MAUI applications. Covers radio button state managemen","description":"# Implementing .NET MAUI Radio Buttons\n\nGuide for implementing Syncfusion .NET MAUI Radio Button (SfRadioButton) - a selection control that allows users to select one option from a set with checked and unchecked states.\n\n## When to Use This Skill\n\nUse this skill when you need to:\n- Implement radio buttons for mutually exclusive selections in .NET MAUI\n- Create grouped radio button sets where only one option can be selected\n- Handle radio button state changes and user interactions\n- Customize radio button appearance (colors, sizing, text styling)\n- Implement GroupKey-based or SfRadioGroup-based grouping\n- Work with radio button events (StateChanged, StateChanging)\n- Apply VisualStateManager to radio buttons\n- Create forms with single-selection options (payment methods, preferences, etc.)\n\n## Component Overview\n\nThe Syncfusion .NET MAUI Radio Button (SfRadioButton) provides:\n- **Two States:** Checked and unchecked with visual feedback\n- **Grouping:** Multiple approaches (SfRadioGroup, GroupKey) for mutual exclusion\n- **Events:** StateChanged and StateChanging for interaction handling\n- **Customization:** Extensive styling options for colors, text, sizing\n- **Visual States:** VisualStateManager integration for advanced styling\n\n## Documentation and Navigation Guide\n\n### Getting Started\n📄 **Read:** [references/getting-started.md](references/getting-started.md)\n- Installing Syncfusion.Maui.Buttons NuGet package\n- Registering the Syncfusion handler in MauiProgram.cs\n- Creating your first SfRadioButton (XAML and C#)\n- Setting caption text with the Text property\n- Managing radio button state with IsChecked\n- Basic SfRadioGroup usage for mutual exclusion\n- Minimal working examples to get started quickly\n\n### Grouping and Organization\n📄 **Read:** [references/grouping.md](references/grouping.md)\n- GroupKey approach: Group radio buttons across different layouts\n- CheckedItem property: Retrieve the currently selected radio button\n- SfRadioGroup container: Automatic mutual exclusion management\n- CheckedChanged event: Respond to selection changes in groups\n- Orientation options: Vertical (default) or horizontal layouts\n- SelectedValue property: Bind to selected radio button values\n- Choosing between GroupKey and SfRadioGroup approaches\n- Multiple independent groups in the same view\n- Advanced grouping scenarios and patterns\n\n### Events and Interaction\n📄 **Read:** [references/events.md](references/events.md)\n- StateChanged event: Detect when radio button state changes\n- StateChangedEventArgs: Access new state information\n- StateChanging event: Intercept and cancel state changes\n- Event handler implementation patterns (XAML and C#)\n- Preventing unwanted state changes with event cancellation\n- Event timing and lifecycle considerations\n- Practical scenarios: validation, confirmation dialogs\n- Responding to user interactions programmatically\n\n### Visual Customization\n📄 **Read:** [references/visual-customization.md](references/visual-customization.md)\n- CheckedColor and UncheckedColor: Customize state colors\n- StrokeThickness: Adjust radio button border (platform considerations)\n- Text appearance: TextColor, FontFamily, FontAttributes, FontSize\n- HorizontalTextAlignment: Control text positioning\n- LineBreakMode: Text wrapping and truncation options\n- ControlSize: Adjust radio button dimensions\n- ContentSpacing: Control spacing between button and text\n- FontAutoScalingEnabled: Automatic font scaling for accessibility\n- EnabledAnimation: Control state change animations\n- Complete styling examples and best practices\n\n### Visual States\n📄 **Read:** [references/visual-states.md](references/visual-states.md)\n- VisualStateManager integration with SfRadioButton\n- Available visual states: Checked and Unchecked\n- Defining visual states in XAML\n- Creating visual states programmatically in C#\n- Customizing appearance for each state\n- Applying multiple property setters per state\n- Complete working examples\n- Best practices for visual state management","tags":["syncfusion","maui","radio","button","components","skills","agent-skills"],"capabilities":["skill","source-syncfusion","skill-syncfusion-maui-radio-button","topic-agent-skills"],"categories":["maui-ui-components-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-radio-button","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add syncfusion/maui-ui-components-skills","source_repo":"https://github.com/syncfusion/maui-ui-components-skills","install_from":"skills.sh"}},"qualityScore":"0.476","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 53 github stars · SKILL.md body (3,994 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:09.279Z","embedding":null,"createdAt":"2026-04-18T22:15:38.825Z","updatedAt":"2026-04-22T00:56:09.279Z","lastSeenAt":"2026-04-22T00:56:09.279Z","tsv":"'access':340,431 'across':267 'adjust':392,415 'advanc':202,320 'allow':60 'anim':436 'appear':119,399,470 'appli':140,474 'applic':36 'approach':176,263,312 'automat':280,427 'avail':452 'base':127,131 'basic':243 'best':441,483 'bind':301 'border':395 'button':5,11,22,32,39,46,54,88,99,110,118,136,144,163,239,266,277,305,336,394,417,423 'c':229,357,468 'cancel':348,364 'caption':231 'chang':112,289,338,350,361,435 'check':70,168,455 'checkedchang':284 'checkedcolor':385 'checkeditem':270 'choos':307 'color':120,194,390 'complet':437,480 'compon':156 'confirm':373 'consider':369,397 'contain':279 'contentspac':419 'control':17,24,58,405,420,433 'controls':414 'cover':37 'creat':96,145,223,463 'current':274 'custom':116,189,381,388,469 'default':295 'defin':458 'detect':333 'dialog':374 'differ':268 'dimens':418 'document':204 'enabledanim':432 'etc':155 'event':137,182,285,325,332,345,351,363,365 'exampl':251,439,482 'exclus':15,27,91,181,248,282 'extens':190 'feedback':173 'first':225 'font':428 'fontattribut':402 'fontautoscalingen':426 'fontfamili':401 'fontsiz':403 'form':146 'get':208,253 'group':30,97,132,174,256,264,291,315,321 'groupkey':126,178,262,309 'groupkey-bas':125 'guid':47,207 'handl':108,188 'handler':220,352 'horizont':297 'horizontaltextalign':404 'implement':6,20,42,49,86,124,353 'independ':314 'inform':343 'instal':213 'integr':200,449 'interact':115,187,327,378 'intercept':346 'ischeck':242 'layout':269,298 'lifecycl':368 'linebreakmod':408 'manag':237,283,488 'managemen':41 'maui':3,9,35,44,52,95,161 'mauiprogram.cs':222 'method':153 'minim':249 'multipl':175,313,475 'mutual':14,26,90,180,247,281 'navig':206 'need':84 'net':8,34,43,51,94,160 'new':341 'nuget':215 'one':64,103 'option':28,65,104,151,192,293,413 'organ':258 'orient':292 'overview':157 'packag':216 'pattern':324,354 'payment':152 'per':478 'platform':396 'posit':407 'practic':370,442,484 'prefer':154 'prevent':358 'programmat':379,466 'properti':236,271,300,476 'provid':165 'quick':255 'radio':4,10,21,31,38,45,53,87,98,109,117,135,143,162,238,265,276,304,335,393,416 'read':210,259,328,382,445 'references/events.md':329,330 'references/getting-started.md':211,212 'references/grouping.md':260,261 'references/visual-customization.md':383,384 'references/visual-states.md':446,447 'regist':217 'respond':286,375 'retriev':272 'scale':429 'scenario':322,371 'select':16,23,57,63,92,107,150,275,288,303 'selectedvalu':299 'set':68,100,230 'setter':477 'sfradiobutton':12,55,164,226,451 'sfradiogroup':130,177,244,278,311 'sfradiogroup-bas':129 'singl':149 'single-select':148 'size':121,196 'skill':78,81 'skill-syncfusion-maui-radio-button' 'source-syncfusion' 'space':421 'start':209,254 'state':40,73,111,167,198,240,337,342,349,360,389,434,444,454,460,465,473,479,487 'statechang':138,139,183,185,331,344 'statechangedeventarg':339 'strokethick':391 'style':123,191,203,438 'syncfus':2,7,50,159,219 'syncfusion-maui-radio-button':1 'syncfusion.maui.buttons':214 'text':122,195,232,235,398,406,409,425 'textcolor':400 'time':366 'topic-agent-skills' 'truncat':412 'two':166 'uncheck':72,170,457 'uncheckedcolor':387 'unwant':359 'usag':245 'use':18,76,79 'user':61,114,377 'valid':372 'valu':306 'vertic':294 'view':319 'visual':172,197,380,443,453,459,464,486 'visualstatemanag':141,199,448 'work':133,250,481 'wrap':410 'xaml':227,355,462","prices":[{"id":"a5743786-a8fd-4445-8934-8c68779f5ad6","listingId":"8a2d1270-231c-447e-8120-ef99847351a8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"syncfusion","category":"maui-ui-components-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:15:38.825Z"}],"sources":[{"listingId":"8a2d1270-231c-447e-8120-ef99847351a8","source":"github","sourceId":"syncfusion/maui-ui-components-skills/syncfusion-maui-radio-button","sourceUrl":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-radio-button","isPrimary":false,"firstSeenAt":"2026-04-18T22:15:38.825Z","lastSeenAt":"2026-04-22T00:56:09.279Z"}],"details":{"listingId":"8a2d1270-231c-447e-8120-ef99847351a8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"syncfusion","slug":"syncfusion-maui-radio-button","github":{"repo":"syncfusion/maui-ui-components-skills","stars":53,"topics":["agent-skills"],"license":null,"html_url":"https://github.com/syncfusion/maui-ui-components-skills","pushed_at":"2026-04-08T07:27:37Z","description":"Skills for Syncfusion .NET MAUI components. Enable AI-assisted development with comprehensive documentation, code examples, and best practices for 100+ UI controls including DataGrid, Charts, Scheduler, and more.","skill_md_sha":"93ddb683bef34106d4a6afb12a892e5ee5164144","skill_md_path":"skills/syncfusion-maui-radio-button/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-radio-button"},"layout":"multi","source":"github","category":"maui-ui-components-skills","frontmatter":{"name":"syncfusion-maui-radio-button","description":"Implements Syncfusion .NET MAUI Radio Button (SfRadioButton) for mutually exclusive selection controls. Use when implementing radio buttons, selection controls with mutually exclusive options, or grouped radio buttons in .NET MAUI applications. Covers radio button state management, grouping mechanisms (GroupKey or SfRadioGroup), events, and visual customization."},"skills_sh_url":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-radio-button"},"updatedAt":"2026-04-22T00:56:09.279Z"}}