2017-06-14 6 views
0

J'utilise VS 2017 et je dois recevoir une autre forme d'image. Donc, c'est fondamentalement App-App Comunication. Je suis nouveau dans le développement UWP et Windows Mobile, donc je recherche beaucoup, et je parviens à obtenir DataPackage avec du contenu partagé.Reciving Image-UWP

Lorsque vous essayez d'examiner ceci:

if (this.shareOperation.Data.Contains(StandardDataFormats.Bitmap)) 
{ 
    this.sharedBitmapStreamRef = await this.shareOperation.Data.GetBitmapAsync(); 

    //catch (Exception ex) 
    //{ 
    // NotifyUserBackgroundThread("Failed GetBitmapAsync - " + ex.Message, NotifyType.ErrorMessage); 
    //} 
} 

Le problème est que l'application ne voit pas mon fichier en tant que Bitmap. Lorsque j'essaie d'obtenir le type de fichier reçu, il me donne System .__ COMObject. Je gère get fichier en tant que storageitem, mais je ne peux pas lire IRandomAccessStreamReference. Comme StorageItem je reçois, chemin, nom etc.

La même chose se passe sur l'application exemple ShareTarget, il ne voit pas non plus image comme BitMap (formatId). Des suggestions?

+0

Alors pourquoi ne pas charger le StorageItem à un BitmapImage? –

+0

Est-ce que ShareSource utilise la méthode 'DataPackage.SetBitmap' pour définir l'image bitmap contenue dans le DataPackage? Si c'est le cas, le ShareOperation.Data.Contains (StandardDataFormats.Bitmap) retournera 'true'. Vous pouvez également vérifier quel est le type StandardDataFormats. –

+0

@IgorKulman Je partage des données depuis la galerie ou l'explorateur de fichiers. Je parviens à charger BitmapImage en lisant Path à partir de IStorageItem, puis en créant un StorageFIle. Mon prochain problème est que cela ne fonctionne que si le fichier est dans le dossier Images (stockage interne). J'ajoute également la possibilité d'ouvrir le pdf. et il s'ouvre quand le fichier .pdf est dans le dossier d'image. Je regarde maintenant quelles autorisations j'ai besoin et comment implémenter des associations de type de fichier. Aucune suggestion? –

Répondre

0

Référez-vous à cet exemple https://code.msdn.microsoft.com/How-to-share-data-between-6ef0a355 sur msdn.

application cible:

if (operation.Data.Contains(StandardDataFormats.Bitmap)) 
{ 
    shareType.Text = "Bitmap"; 
    shareTitle.Text = operation.Data.Properties.Title; 
    imgShareImage.Visibility = Visibility.Visible; 
    tbShareData.Visibility = Visibility.Collapsed; 
    RandomAccessStreamReference imageStreamRef = await operation.Data.GetBitmapAsync(); 
    IRandomAccessStreamWithContentType streamWithContentType = await imageStreamRef.OpenReadAsync(); 
    BitmapImage bitmapImage = new BitmapImage(); 
    bitmapImage.SetSource(streamWithContentType); 
    imgShareImage.Source = bitmapImage; 
} 
+0

Je crée ce projet maintenant et il ne reconnaît pas bitmap, il suffit de rompre toutes les instructions shareoperations, sans sortie, son important J'ai besoin de cela pour travailler sur Windows Phone –

+0

J'ai essayé sur mon appareil, et cela fonctionne bien. –

+0

Je reçois des objets .pdf ou image sous la forme system_combobject et ne les reconnaît que comme élément de stockage. J'utilise pour créer un fichier de stockage, à partir du chemin. –