<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q" -->

---
title: Build a Light vs Dark Preview Control in Avalonia
description: Building a real Avalonia theme means checking EVERY control in light AND dark — without duplicating all your preview code.  In this video I build a reusable...
canonical: https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Build a Light vs Dark Preview Control in Avalonia | daily.dev
og:description: Building a real Avalonia theme means checking EVERY control in light AND dark — without duplicating all your preview code.  In this video I build a reusable...
og:url: https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q
og:image: https://api.daily.dev/og/posts/iINJU2o1q.png
og:image:alt: Build a Light vs Dark Preview Control in Avalonia
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a Light vs Dark Preview Control in Avalonia

**[AngelSix](https://daily.dev/sources/angelsix)** · 12 min read · 0 upvotes · 0 comments

## Summary

Building a real Avalonia theme means checking EVERY control in light AND dark — without duplicating all your preview code.

In this video I build a reusable LightDarkPreview control to show both themes side-by-side, add Orientation support with RelativeSource binding, then start the grind of auditing every control for release.

------------------------------------------------
WHAT YOU'LL LEARN:
------------------------------------------------
- How to build a reusable LightDarkPreview ContentControl in Avalonia
- Using ContentTemplate + Title to kill preview code duplication
- Adding an Orientation property with RelativeSource StepUp binding
- Why DataTemplates in a ResourceDictionary clean up previews
- How to systematically audit light / dark for error states, padding and cropping
- Where automation stops and manual visual polish starts

------------------------------------------------
TIMESTAMPS:
------------------------------------------------
00:00 - Generic events, hover effects and dropdown progress
00:36 - Week number feature, Avalonia v12 style but cleaner
01:21 - The release blocker: every control in light and dark
02:30 - First pass: light / dark preview with DataTemplate
03:42 - Building the LightDarkPreview custom control
05:00 - Cleaner usage: ContentTemplate + Title
06:06 - Adding Orientation: Horizontal vs Vertical previews
06:54 - RelativeSource StepUp binding to internal StackPanel
07:58 - Plan to auto-generate all previews in the new style
08:21 - What breaks: error styling, padding, cropping bugs
10:36 - The manual fixing phase for production polish
11:35 - Next: mini-app to showcase the theme for real

------------------------------------------------
LINKS:
------------------------------------------------
GitHub: https://github.com/angelsix
Website: https://www.angelsix.com
Avalonia Docs: https://docs.avaloniaui.net/
Avalonia Themes Playlist: https://www.youtube.com/playlist?list=PLr9o3Cr9x9Mc5P6wZ-D2v9P-R8QYq9v9 - replace with your playlist link

#Avalonia #DotNet #CSharp

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=tYTMNrN-3rw>

---

Tags: [#avalonia](https://daily.dev/tags/avalonia)

[View this post on daily.dev](https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Build a Light vs Dark Preview Control in Avalonia","url":"https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q"},"datePublished":"2026-10-04T13:04:34.779Z","dateModified":"2026-10-04T21:58:41.792Z","description":"Building a real Avalonia theme means checking EVERY control in light AND dark — without duplicating all your preview code.\n\nIn this video I build a reusable...","image":"https://i.ytimg.com/vi/tYTMNrN-3rw/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/tYTMNrN-3rw/sddefault.jpg","isAccessibleForFree":true,"articleSection":"AngelSix","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"AngelSix","logo":"https://media.daily.dev/image/upload/s--h1ikmN_u--/f_auto,q_auto/v1791119063/logos/angelsix?_a=BAMAMicg0","url":"https://daily.dev/sources/angelsix"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/build-a-light-vs-dark-preview-control-in-avalonia-iinju2o1q","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"avalonia","timeRequired":"PT12M","video":{"@type":"VideoObject","name":"Build a Light vs Dark Preview Control in Avalonia","description":"Building a real Avalonia theme means checking EVERY control in light AND dark — without duplicating all your preview code.\n\nIn this video I build a reusable...","thumbnailUrl":"https://i.ytimg.com/vi/tYTMNrN-3rw/sddefault.jpg","uploadDate":"2026-10-04T13:04:34.779Z","duration":"PT12M","url":"https://api.daily.dev/r/iINJU2o1q","embedUrl":"https://www.youtube.com/embed/tYTMNrN-3rw"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"AngelSix","item":"https://daily.dev/sources/angelsix"},{"@type":"ListItem","position":3,"name":"Build a Light vs Dark Preview Control in Avalonia"}]}
```

