Для первого случая вам нужно создать два изображения значков, одно для выбранного, а другое для обычного вида.
Вы можете изменить изображение в списке при изменении выбора, как показано ниже
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string imgUri = "selectedImageName.png";
BitmapImage bmp = new BitmapImage();
bmp.UriSource = new Uri(imgUri, UriKind.Relative);
(listBox1.SelectedItem as Image).Source = bmp;
// for resetting unselected items
BitmapImage bmp1 = new BitmapImage();
foreach (var v in e.RemovedItems)
{
imgUri = "imageNameForNormalView.png";
bmp1.UriSource = new Uri(imgUri, UriKind.Relative);
(v as Image).Source = bmp1;
}
}