Вы должны полностью переопределить шаблон элемента управления, потому что Chrome по умолчанию использует настройки ОС.
Это гораздо проще сделать в Expression Blend, чем в Visual Studio.
Вотупрощенная версия шаблона по умолчанию для ToggleButton
:
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="White"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" RenderDefaulted="{TemplateBinding Button.IsDefaulted}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" RecognizesAccessKey="True"/>
</Microsoft_Windows_Themes:ButtonChrome>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Обратите внимание, что элемент управления использует Microsoft_Windows_Themes:ButtonChrome
.Если вы избавитесь от этого хрома или замените его, отображение ваших пользователей должно совпадать с вашим собственным (не удаляйте, однако, ContentPresenter
- это то, куда идет текст / содержимое кнопки).Если вы просто удалите его, у вас будет плоская кнопка.Для него вы можете создавать визуальные состояния и анимацию, но, опять же, это гораздо проще в Blend.
Примечание: пространство имен с псевдонимом Microsoft_Windows_Themes
в этом случае xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"