<ResourceDictionary
		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
		xmlns:System="clr-namespace:System;assembly=mscorlib">

  <!-- *********************************************************************************** -->
  <!-- SystemControlStyles -->
  <!--Basic GridSpitter-->
  <Style TargetType="{x:Type GridSplitter}">
    <Setter Property="Background" Value="{DynamicResource GridSplitter.Background}" />
  </Style>

  <!--Basic CheckBox-->
  <Style TargetType="{x:Type CheckBox}">
    <Setter Property="Foreground"
			Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate 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" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
              <Grid x:Name="markGrid">
                <Path x:Name="optionMark" Data="F1M9.97498,1.22334L4.6983,9.09834 4.52164,9.09834 0,5.19331 1.27664,3.52165 4.255,6.08833 8.33331,1.52588E-05 9.97498,1.22334z" Fill="#FF212121" Margin="1" Opacity="0" Stretch="None"/>
                <Rectangle x:Name="indeterminateMark" Fill="#FF212121" Margin="2" Opacity="0"/>
              </Grid>
            </Border>
            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger Property="HasContent" Value="True">
              <Setter Property="FocusVisualStyle">
                <Setter.Value>
                  <Style>
                    <Setter Property="Control.Template">
                      <Setter.Value>
                        <ControlTemplate>
                          <Rectangle Margin="18,0,0,0" SnapsToDevicePixels="True" Stroke="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}" StrokeThickness="1"/>
                        </ControlTemplate>
                      </Setter.Value>
                    </Setter>
                  </Style>
                </Setter.Value>
              </Setter>
              <Setter Property="Padding" Value="4,-1,0,0"/>
            </Trigger>
            <Trigger Property="IsMouseOver" Value="True">
              <Setter Property="Background" TargetName="checkBoxBorder" Value="#FFF3F9FF"/>
              <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FF5593FF"/>
              <Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>
              <Setter Property="Fill" TargetName="indeterminateMark" Value="#FF212121"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
              <Setter Property="Background" TargetName="checkBoxBorder" Value="#FFE6E6E6"/>
              <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FFBCBCBC"/>
              <Setter Property="Fill" TargetName="optionMark" Value="#FF707070"/>
              <Setter Property="Fill" TargetName="indeterminateMark" Value="#FF707070"/>
            </Trigger>
            <Trigger Property="IsPressed" Value="True">
              <Setter Property="Background" TargetName="checkBoxBorder" Value="#FFD9ECFF"/>
              <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="#FF3C77DD"/>
              <Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>
              <Setter Property="Fill" TargetName="indeterminateMark" Value="#FF212121"/>
            </Trigger>
            <Trigger Property="IsChecked" Value="True">
              <Setter Property="Opacity" TargetName="optionMark" Value="1"/>
              <Setter Property="Opacity" TargetName="indeterminateMark" Value="0"/>
            </Trigger>
            <Trigger Property="IsChecked" Value="{x:Null}">
              <Setter Property="Opacity" TargetName="optionMark" Value="0"/>
              <Setter Property="Opacity" TargetName="indeterminateMark" Value="1"/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <!--Basic Label-->
  <Style TargetType="{x:Type Label}">
    <Setter Property="Foreground"
      Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}"/>
  </Style>

  <!--Basic Expander-->
  <Style TargetType="{x:Type Expander}">
    <Setter Property="Foreground"
      Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}"/>
  </Style>

    <!--Basic ToolTip-->
    <Style TargetType="{x:Type ToolTip}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="{x:Null}">
                <Setter Property="Visibility" Value="Collapsed" />
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="">
                <Setter Property="Visibility" Value="Collapsed" />
            </DataTrigger>
        </Style.Triggers>
    </Style>

</ResourceDictionary>
