Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - donaldsteele/MaterialSkin: Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. · GitHub
Skip to content

Repository files navigation

MaterialSkin for .NET WinForms

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

This project is ACTIVE(With some long pauses in between, but I still read every issue and check every PR)

home

Have a quick question? want to discuss some improvement or question some code? come here, let's talk about it

Nuget Package

A nuget package version is available here

Or simply search for MaterialSkin.2 on the Nuget Package Manager inside Visual Studio

WIKI Available!

But there's not much in there for now, please contribute if you can. 😄

You can access it here

Current state of the MaterialSkin components

ComponentSupportedDisabled modeAnimated
ButtonsYesYesYes
BackdropNo--
CardsYesN/AN/A
Check BoxYesYesYes
Check Box ListYesYesYes
ComboboxYesYesYes
Context MenuYesYesYes
DialogNo--
DividerYesN/AN/A
DrawerYesN/AYes
Flexible Dialog (big)YesYesN/A
FAB - Floating Action ButtonYesNoYes
LabelYesYesN/A
ListViewYesNoN/A
Progress BarPartialNoNo
Radio ButtonYesYesYes
Text fieldYesNoYes
SlidersNo--
SwitchYesYesYes
TabsYesN/AYes

All supported components have a dark theme

TODO List

  • Progress bar - Animation and variants, maybe round loading thingy
  • Sliders
  • Dialog (!= message box)
  • Backdrop (maybe)
  • Better FAB
  • Better Listview
  • Disabled textfield
  • Some Color code improvements and refactoring

Contributting

If you have any issues please open an issue; have an improvement? open a pull request.

This project was heavily updated by @leocb leocb/MaterialSkin

forked from donaldsteele/MaterialSkin

and he forked it from the original IgnaceMaes/MaterialSkin


Implementing MaterialSkin in your application

1. Add the library to your project

There are a few methods to add this lib:

The Easy way

Search for MaterialSkin.2 on the Nuget Package manager inside VisualStudio and add it to your project.

Manual way

Download the precompiled DLL available on the releases section and add it as a external reference on your project.

Compile from the latest master

Clone the project from GitHub, then add the MaterialSkin.csproj to your own solution, then add it as a project reference on your project.

2. Add the MaterialSkin components to your ToolBox

Simply drag the MaterialSkin.dll file into your IDE's ToolBox and all the controls should be added there.

3. Inherit from MaterialForm

Open the code behind your Form you wish to skin. Make it inherit from MaterialForm rather than Form. Don't forget to put the library in your imports, so it can find the MaterialForm class!

C# (Form1.cs)

publicpartialclassForm1:MaterialForm

VB.NET (Form1.Designer.vb)

PartialClassForm1InheritsMaterialSkin.Controls.MaterialForm

4. Initialize your colorscheme

Set your preferred colors & theme. Also add the form to the manager so it keeps updated if the color scheme or theme changes later on.

C# (Form1.cs)

publicForm1(){InitializeComponent();varmaterialSkinManager=MaterialSkinManager.Instance;materialSkinManager.AddFormToManage(this);materialSkinManager.Theme=MaterialSkinManager.Themes.LIGHT;materialSkinManager.ColorScheme=newColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE);}

VB.NET (Form1.vb)

ImportsMaterialSkinPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadDimSkinManagerAsMaterialSkinManager=MaterialSkinManager.InstanceSkinManager.AddFormToManage(Me)SkinManager.Theme=MaterialSkinManager.Themes.LIGHTSkinManager.ColorScheme=NewColorScheme(Primary.BlueGrey800,Primary.BlueGrey900,Primary.BlueGrey500,Accent.LightBlue200,TextShade.WHITE)EndSubEndClass

Material Design in WPF

If you love .NET and Material Design, you should definitely check out Material Design Xaml Toolkit by ButchersBoy. It's a similar project but for WPF instead of WinForms.


Images

A simple demo interface with MaterialSkin components.home

The MaterialSkin Drawer (menu).drawer

Every MaterialSkin button variant - this is 1 control, 3 propertiesbuttons

The MaterialSkin checkboxes, radio and Switch.selection

Material skin textfield and labelstext

Table controltable

Progress barprogress bar

Cardscards

MaterialSkin using a custom color scheme.custom

FlexibleMaterial Messageboxmessagebox

About

Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.

Resources

Stars

42 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages