2009-08-07 7 views
0

У меня есть элемент управления с событием mouse down, где Id любит перемещать изображение при щелчке по изображению. Но, похоже, я не могу изменить ЛЮБОЙ из свойств изображений в событии.WPF, Image MouseDown Event

События

private void Image_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     BitmapImage bitImg = new BitmapImage(); 
     bitImg.BeginInit(); 
     bitImg.UriSource = new Uri("./Resource/Images/Bar1.png", UriKind.Relative); 
     bitImg.EndInit(); 

     ((Image)sender).Source = null; 
     ((Image)sender).Width = 100; 
     ((Image)sender).Visibility = Visibility.Hidden; 
    } 

События делает огнь, и даже свойство .Visibility не меняет образ и сделать его скрытым.

Что я делаю неправильно?

ответ

1

Предполагая, что файл в вашем приложении, вы должны использовать Pack URI scheme:

 var img = sender as Image; 
     BitmapImage bmp = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Bar1.png")); 
     img.Source = bmp; 

В приведенном выше примере, это будет означать, вложенную в вашем проекте ресурсов/изображений.

+0

хммм Еще не изменяет, у меня есть Bar1.png в папке /Images/Bar1.pgn и его свойство устанавливается как ресурс Если я deliberatly промах по буквам изображение для barx.png и Exeption брошено говоря, что он не может найти его, поэтому я знаю, что он нашел его в ресурсах ... Просто не обновляет изображение до нового. – PrimeTSS

+0

Если вы снова посмотрите на свой код, вы устанавливаете источник в null. Я не вижу, где вы применяете BitmapImage к источнику? –

+0

APPOLOGIES !!!!!!!! Я узнал, почему. У меня есть два шаблона на этом элементе управления - это шаблон «Выбранный», я не установил событие мыши на этот шаблон. Несмотря на то, что событие было выпущено, я думаю, что выбранный шаблон заработал не выбранный шаблон, который, возможно, был перенесен на бит-карту, но не достаточно долго отображался для отображения и был написан написанным выбранным шаблоном ..... Thankyou! – PrimeTSS