<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style x:Key="OptionMarkFocusVisual">
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate>
                    <Rectangle
                        Margin="14,0,0,0"
                        SnapsToDevicePixels="true"
                        Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
                        StrokeDashArray="1 2"
                        StrokeThickness="1" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <SolidColorBrush x:Key="OptionMark.Static.Background" Color="#FFFFFFFF" />
    <SolidColorBrush x:Key="OptionMark.Static.Border" Color="#FF707070" />
    <SolidColorBrush x:Key="OptionMark.MouseOver.Background" Color="White" />
    <SolidColorBrush x:Key="OptionMark.MouseOver.Border" Color="Black" />
    <SolidColorBrush x:Key="OptionMark.MouseOver.Glyph" Color="White" />
    <SolidColorBrush x:Key="OptionMark.Disabled.Background" Color="#FFE6E6E6" />
    <SolidColorBrush x:Key="OptionMark.Disabled.Border" Color="#FFBCBCBC" />
    <SolidColorBrush x:Key="OptionMark.Disabled.Glyph" Color="#FF707070" />
    <SolidColorBrush x:Key="OptionMark.Pressed.Background" Color="#FFD9ECFF" />
    <SolidColorBrush x:Key="OptionMark.Pressed.Border" Color="#FF3C77DD" />
    <SolidColorBrush x:Key="OptionMark.Pressed.Glyph" Color="White" />
    <SolidColorBrush x:Key="OptionMark.Static.Glyph" Color="White" />
    <ControlTemplate x:Key="MenuCheckbox" TargetType="{x:Type CheckBox}">
        <Grid
            x:Name="templateRoot"
            Background="Transparent"
            SnapsToDevicePixels="True">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Border
                x:Name="checkBoxBorder"
                Width="20"
                Height="20"
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                BorderBrush="{TemplateBinding BorderBrush}"
                BorderThickness="1">
                <Grid x:Name="markGrid">
                    <Polygon
                        x:Name="optionMark"
                        Width="20"
                        Height="20"
                        Margin="1,0,0,0"
                        VerticalAlignment="Center"
                        Fill="{StaticResource OptionMark.Static.Glyph}"
                        Opacity="0"
                        Points="15.5992424 4.59619408 16.3063492 5.30330086 5.69974747 15.9099026 0.396446609 10.6066017 1.10355339 9.89949494 5.7 14.496" />
                    <Rectangle
                        x:Name="indeterminateMark"
                        Width="20"
                        Height="20"
                        Fill="{StaticResource OptionMark.Static.Glyph}"
                        Opacity="0" />
                </Grid>
            </Border>
            <ContentPresenter
                x:Name="contentPresenter"
                Grid.Column="1"
                Margin="{TemplateBinding Padding}"
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                Focusable="False"
                RecognizesAccessKey="True"
                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="HasContent" Value="true">
                <Setter Property="FocusVisualStyle" Value="{StaticResource OptionMarkFocusVisual}" />
                <Setter Property="Padding" Value="4,-1,0,0" />
            </Trigger>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.MouseOver.Background}" />
                <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.MouseOver.Border}" />
                <Setter TargetName="checkBoxBorder" Property="BorderThickness" Value="2" />
                <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.MouseOver.Glyph}" />
                <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.MouseOver.Glyph}" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
                <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.Disabled.Background}" />
                <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.Disabled.Border}" />
                <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.Disabled.Glyph}" />
                <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.Disabled.Glyph}" />
            </Trigger>
            <Trigger Property="IsPressed" Value="true">
                <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.Pressed.Background}" />
                <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.Pressed.Border}" />
                <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.Pressed.Glyph}" />
                <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.Pressed.Glyph}" />
            </Trigger>
            <Trigger Property="IsChecked" Value="true">
                <Setter TargetName="optionMark" Property="Opacity" Value="1" />
                <Setter TargetName="indeterminateMark" Property="Opacity" Value="0" />
                <Setter TargetName="checkBoxBorder" Property="Background" Value="#FF0078D7" />
            </Trigger>
            <Trigger Property="IsChecked" Value="{x:Null}">
                <Setter TargetName="optionMark" Property="Opacity" Value="0" />
                <Setter TargetName="indeterminateMark" Property="Opacity" Value="1" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
</ResourceDictionary>