Как получить источник изображения на GestureCompleted - PullRequest
0 голосов
/ 31 марта 2012

Я хочу найти URI изображения на экране телефона при перетаскивании изображения. У меня есть много изображений на экране, и мне нужно знать, какое из них было перетащено, я легко могу найти это по имени файла изображения, так как они называются A.png, B.png and so on.

    private void OnGestureCompleted(object sender, Microsoft.Phone.Controls.GestureEventArgs e){
        Image image = sender as Image;
        TranslateTransform transform = image.RenderTransform as TranslateTransform;
        //storing the final values after the gesture is complete
        xFin = (e.GetPosition(null).X);
        yFin = (e.GetPosition(null).Y);
        //failed attempts to convert adress to string
        MessageBox.Show(image.Source.ToString());
    }

Возвращает System.Windows.Controls.Image. а это, с другой стороны, вызывает исключение, указывающее, что ConvertToString не был реализован.

ImageSourceConverter convertor = new ImageSourceConverter();
string location = convertor.ConvertToString(image);
MessageBox.Show(location);

Есть ли способ, которым это можно сделать?

1 Ответ

1 голос
/ 31 марта 2012

Если вы знаете, что свойство Source имеет значение BitmapImage (что, вероятно, имеет место, если вы передаете URI в Image в свойстве Source в XAML), тогда вы можете использовать UriSource:

MessageBox.Show(((BitmapImage)image.Source).UriSource.ToString());

Я предлагаю вам использовать свойство Tag элемента управления Image для хранения необходимой вам информации. Более масштабируемый и надежный в долгосрочной перспективе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...