Colors in Visual Studio Extension
Asked Answered
R

1

13

I'm developing a VS extension and I want to achieve that my UI will use colors (font, background etc.) depending on the selected VS-color-scheme. What is the best way to do this. Can I bind against some static ressources in my WPF?

Rathskeller answered 20/9, 2013 at 9:24 Comment(0)
V
21

Yes, binding to static VS resources is the best approach. It is supported in VS 2012+ and looks like this:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vs_shell="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.11.0">
<Style TargetType="Label">
    <Setter Property="Foreground" Value="{DynamicResource {x:Static vs_shell:EnvironmentColors.ToolWindowTextBrushKey}}"/>
</Style>
<Style TargetType="TextBox">
    <Setter Property="Foreground" Value="{DynamicResource {x:Static vs_shell:EnvironmentColors.ToolWindowTextBrushKey}}"/>
    <Setter Property="Background" Value="{DynamicResource {x:Static vs_shell:EnvironmentColors.ToolWindowBackgroundBrushKey}}"/>
</Style>
</ResourceDictionary>

See EnvironmentColors Class for all avilable colors.

Veradis answered 21/9, 2013 at 6:15 Comment(2)
<What about buttons? Especially for IsMouseOver colors are terrible for dark modeWhorehouse
@CanPERK See for example github.com/Samsung/vs-tools-cps/blob/…Veradis

© 2022 - 2024 — McMap. All rights reserved.