Подтвердить что ты не робот

Цвета в Visual Studio Extension

Я разрабатываю VS-расширение и хочу достичь того, что мой пользовательский интерфейс будет использовать цвета (шрифт, фон и т.д.) в зависимости от выбранной схемы VS-color. Каков наилучший способ сделать это. Могу ли я привязываться к некоторым статическим ресурсам в WPF?

4b9b3361

Ответ 1

Да, привязка к статическим ресурсам VS - лучший подход. Он поддерживается в VS 2012+ и выглядит следующим образом:

<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>

Смотрите класс EnvironmentColors для всех доступных цветов.