text: Q:
  
  Radio button checked show image1, unchecked show image2 wpf xmal style
  
  I am using "BooleanToVisibilityConverter" to show one image when radio button is checked. Is their any way I can use same sort of style show another image when this radio button is unchecked?
  <BooleanToVisibilityConverter x:Key="VisibilityConverter" />
  
  <RadioButton Name="rbttest" IsChecked="True"  GroupName="rbtMenuGroup" 
  Style="{StaticResource RadioButtonMenuStyle}"  >
  
  <WrapPanel>
  
  <Image Source="/wpf1;component/Images/test1.png"     
  Visibility="{Binding IsChecked=false ???}"  Style="{StaticResource MenuIconStyle}" />  
  
  <Image Source="/wpf;component/Images/test2.png" 
  Visibility="{Binding IsChecked,  Converter={StaticResource 
  VisibilityConverter},ElementName = rbttest}" 
  Style="{StaticResource MenuIconStyle}" ></Image>
  
  <TextBlock Text="This is testing" />
  
  </WrapPanel>
  </RadioButton>
  
  A:
  
  I found a solution for the time being before I study the MVVM, DataBinding, DependencyProperty, ControlTemplates. 
  I have added the BooleanToVisibilityConverter class which allows reverse, I mean hide/collapse control when true and visible when false ! 
  
   using System;
   using System.Windows.Data;
   using System.Windows;
  
   namespace TestBooleanToVisibilityConverter
  {
  class BoolToVisibleOrHidden : IValueConverter
  {
      #region Constructors
      /// <summary>
      /// The default constructor
      /// </summary>
      public BoolToVisibleOrHidden() { }
      #endregion
  
      #region Properties
      public bool Collapse { get; set; }
      public bool Reverse { get; set; }
      #endregion
  
      #region IValueConverter Members
      public object Convert(object value, Type targetType, object parameter, 
      System.Globalization.CultureInfo culture)
      {
          bool bValue = (bool)value;
  
              if (bValue != Reverse)
              {
                  return Visibility.Visible;
              }
              else
              {
                  if (Collapse)
                      return Visibility.Collapsed;
                  else
                      return Visibility.Hidden;
              }
      }
  
      public object ConvertBack(object value, Type targetType, object parameter,
      System.Globalization.CultureInfo culture)
      {
          Visibility visibility = (Visibility)value;
  
              if (visibility == Visibility.Visible)
                  return !Reverse;
              else
                  return Reverse;
      }
      #endregion
  }
  }
   Now you can reverse this very easily in the XAML.
  
   <local:BoolToVisibleOrHidden x:Key="BoolToVisConverter" Collapse="True" Reverse="True" 
   />
   <local:BoolToVisibleOrHidden x:Key="BoolToVisConverter2" Collapse="True" 
    Reverse="false" />
    ---------------------------------------------------------------------------------
  
  <RadioButton Name="rbttest" IsChecked="True"  GroupName="rbtMenuGroup" 
  Style="{StaticResource RadioButtonMenuStyle}"  >
  
  <WrapPanel>
    <--Show the image when radio button unchecked-->
   <Image Source="/wpf1;component/Images/test1.png"     
   Visibility="{Binding IsChecked,  Converter={StaticResource 
   BoolToVisConverter},ElementName = rbttest}"  Style="{StaticResource MenuIconStyle}"   
   />  
  
    <--Show the image when radio button checked-->
  <Image Source="/wpf1;component/Images/test2.png" 
   Visibility="{Binding IsChecked,  Converter={StaticResource 
   BoolToVisConverter2},ElementName = rbttest}" 
  Style="{StaticResource MenuIconStyle}" ></Image>
  
  <TextBlock Text="This is testing" />
  
  </WrapPanel>
  
  Reference : http://www.rhyous.com/2011/02/22/binding-visibility-to-a-bool-value-in-wpf/
  
  