Réglage de la source de l'Image par programmation en application de Métro, l'Image n'apparaît pas
J'ai une page principale et une caméra page de mon application. La page principale a une image qui n'a pas sa source et d'un bouton. Si vous cliquez sur le bouton, il vous amène à la page de caméra. Sur la page de caméra, je capture une image et l'enregistrer dans la bibliothèque d'images sur la tablette et puis retourner à la page principale, où je voudrais définir la source de l'image pour l'image j'ai juste capturé et enregistré dans ma bibliothèque d'images. Voici mon code pertinent.
De la page d'accueil.xaml
<Image x:Name="imgResume" HorizontalAlignment="Left" Height="303" Margin="975,60,0,0" Grid.Row="1" VerticalAlignment="Top" Width="360" Stretch="UniformToFill" Loaded="img_OnLoaded"/>
<Button x:Name="btnCamera" Content="Camera" HorizontalAlignment="Left" Margin="1128,372,0,0" Grid.Row="1" VerticalAlignment="Top" RenderTransformOrigin="2.05800008773804,0.184000000357628" Height="59" Width="108" Click="Camera_Click" IsEnabled="False"/>
De la page d'accueil.xaml.cs
private void img_OnLoaded(object sender, RoutedEventArgs e)
{
if (txtFirstName.Text != "" && txtLastName.Text != "")
{
try
{
imgResume.Source = ImageFromRelativePath(this, Windows.Storage.KnownFolders.PicturesLibrary.Path + ((App)Application.Current).candidate.FirstName + ((App)Application.Current).candidate.FirstName + "Resume.jpg");
imgResume.UpdateLayout();
}
catch
{
imgResume.Source = ImageFromRelativePath(this, @"Assets/logo.png");
imgResume.UpdateLayout();
}
btnCamera.IsEnabled = true;
}
}
public static BitmapImage ImageFromRelativePath(FrameworkElement parent, string path)
{
var uri = new Uri(parent.BaseUri, path);
BitmapImage result = new BitmapImage();
result.UriSource = uri;
return result;
}
De la caméra.xaml.cs
private async void Capture_Click(object sender, RoutedEventArgs e)
{
if (mediaCaptureMgr != null)
{
string firstName = ((App)Application.Current).candidate.FirstName;
string lastName = ((App)Application.Current).candidate.LastName;
string fileName = firstName + lastName + "Resume.jpg";
Windows.Storage.IStorageFile photo = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFileAsync(fileName, Windows.Storage.CreationCollisionOption.ReplaceExisting);
await mediaCaptureMgr.CapturePhotoToStorageFileAsync(Windows.Media.MediaProperties.ImageEncodingProperties.CreateJpeg(), photo);
this.Frame.Navigate(typeof(BasicPersonalInfo));
}
}
La img_OnLoaded méthode dans la page d'accueil.fichier xaml est d'essayer de définir la source de l'image à l'image que j'ai enregistrer dans la bibliothèque d'images de la Capture_click méthode dans l'Appareil photo.xaml.cs.
Mon problème c'est que la photo ne montre jamais sur l'image sur la première page! S'il vous plaît aider!
OriginalL'auteur Jordan Brooker | 2012-08-06
Vous devez vous connecter pour publier un commentaire.
Cela peut également être utile aux gens d'essayer de résoudre le problème lié à la mise à jour d'une Image à partir d'un fichier de ressources local.
Code de ici.
Si le nombre de lignes de code pour faire simple et commune de la chose. Pourquoi ne pas Microsoft de fournir quelque chose comme myImage = new Image(string imagePath); ? Sans doute n'adhèrent pas à ce modèle ou d'autres circlejerk ils sont abonnés.
OriginalL'auteur diadyne
Je pense que cette partie est le problème:
Qui semble essayer de charger l'image à partir du dossier d'installation de tout votre chemin est un chemin d'accès complet, qui je crois n'est pas pris en charge pour l'ouverture de fichiers dans WinRT et certainement ne fonctionne pas comme un Uri même avec un baseUri.
Vous devriez plutôt faire quelque chose comme:
OriginalL'auteur Filip Skakun