title: Calling converter's Convert() method everytime on mouse over WPF
body: <p>I would like to call the converter's Convert method though there is no value change in the source. Now it is calling first time only. Is there any way to achieve this?</p>
  
  <p>I know that convert method will not call every time unless there is a change is the source.</p>
  
  <pre><code> public class ElementNameToDrawingBrushConverter : IValueConverter
      {
          /// &lt;summary&gt;
          /// Method converts colors to brush.
          /// &lt;/summary&gt;
          /// &lt;param name="value"&gt;value to convert&lt;/param&gt;
          /// &lt;param name="targetType"&gt;target type&lt;/param&gt;
          /// &lt;param name="parameter"&gt;param for convert&lt;/param&gt;
          /// &lt;param name="culture"&gt;culture info instance&lt;/param&gt;
          /// &lt;returns&gt;converted brush&lt;/returns&gt;
          public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
          {
              DrawingBrush settedBrush = null;
              var shape = value as Shape;
  
              if (shape == null || parameter == null)
              {
                  return value;
              }
  
              settedBrush = shape.Fill as DrawingBrush;
              return GetIconBrush(settedBrush, parameter as Brush);
          }
  
          /// &lt;summary&gt;
          /// This method is to provide the new brush for the image
          /// &lt;/summary&gt;
          /// &lt;param name="settedBrush"&gt;settedBrush&lt;/param&gt;
          /// &lt;param name="brushColor"&gt;brushColor&lt;/param&gt;
          /// &lt;returns&gt;DrawingBrush&lt;/returns&gt;
          public static DrawingBrush GetIconBrush(DrawingBrush settedBrush, Brush brushColor)
          {
              DrawingBrush newBrush = null;
  
              if (settedBrush != null &amp;&amp; brushColor != null)
              {
                  newBrush = settedBrush.Clone();
  
                  foreach (var geometry in ((DrawingGroup)newBrush.Drawing).Children)
                  {
                      GeometryDrawing geometryDrawing = geometry as GeometryDrawing;
  
                      if (geometryDrawing != null)
                      {
                          if (geometryDrawing.Pen != null)
                          {
                              if (geometryDrawing.Pen.Brush != null)
                              {
                                  geometryDrawing.Pen.Brush = brushColor;
                              }
                          }
                          else if (geometryDrawing.Brush != null)
                          {
                              geometryDrawing.Brush = brushColor;
                          }
                      }
  
                      DrawingGroup drawingGroup = geometry as DrawingGroup;
  
                      if (drawingGroup != null)
                      {
                          foreach (var geometryInner in drawingGroup.Children)
                          {
                              GeometryDrawing geometryDrawingChild = geometryInner as GeometryDrawing;
  
                              if (geometryDrawingChild != null)
                              {
                                  if (geometryDrawingChild.Pen != null)
                                  {
                                      geometryDrawingChild.Pen.Brush = brushColor;
                                  }
                                  else if (geometryDrawingChild.Brush != null)
                                  {
                                      geometryDrawingChild.Brush = brushColor;
                                  }
                              }
                          }
                      }
                  }
                  return newBrush;
              }
  
              return settedBrush;
  
          }
  
          /// &lt;summary&gt;
          /// Convert back implementation
          /// &lt;/summary&gt;
          /// &lt;param name="value"&gt;value to convert back&lt;/param&gt;
          /// &lt;param name="targetType"&gt;target type&lt;/param&gt;
          /// &lt;param name="parameter"&gt;param for convert&lt;/param&gt;
          /// &lt;param name="culture"&gt;culture info instance&lt;/param&gt;
          /// &lt;returns&gt;fallback object&lt;/returns&gt;
          public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
          {
               throw new NotImplementedException();
          }
      }
  
  </code></pre>
  
  <pre><code>&lt;Button Template="{StaticResource CustomButton}" Content="{Binding MyContent}" ImageContent="{StaticResource  SystemResetNormal}"/&gt;
  
  &lt;ControlTemplate TargetType="{x:Type Button}" x:Key="CustomButton"&gt;
          &lt;Border Background="Pink" Height="80" Width="70"&gt;
              &lt;Grid&gt;
                  &lt;Grid.RowDefinitions&gt;
                      &lt;RowDefinition Height="60"/&gt;
                      &lt;RowDefinition Height="*"/&gt;
                  &lt;/Grid.RowDefinitions&gt;
                  &lt;Rectangle x:Name="buttonRectangle" Fill="{TemplateBinding ImageContent}" Height="60" Width="40" Loaded="Rectangle_Loaded" /&gt;
                  &lt;TextBlock x:Name="ContentTxt" Text="{TemplateBinding Content}" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/&gt;
              &lt;/Grid&gt;
          &lt;/Border&gt;
          &lt;ControlTemplate.Triggers&gt;
              &lt;Trigger Property="IsMouseOver" Value="True"&gt;
                  &lt;Setter TargetName="buttonRectangle" Property="Fill" Value="{Binding ElementName=buttonRectangle,
                      Converter={StaticResource ElementNameToBrushConverter},
                      ConverterParameter={StaticResource BAquamarine}}" /&gt;
              &lt;/Trigger&gt;
          &lt;/ControlTemplate.Triggers&gt;
      &lt;/ControlTemplate&gt;
  </code></pre>
  
  <p></p>
  
  <p>I need to call Convert method every time when i mouse over it.</p>