Laden...

Steuerelement Image mit Silverlight 4

Erstellt von MXP vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.200 Views
M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren
Steuerelement Image mit Silverlight 4

Ich habe vor Bilder vom Internet auf das Silverlight (version 4) Steuerelement Image anzeigen zu lassen.

Bildbeispiel(Internetpfad) http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg
Hinweis!! Wenn Sie auf diesen Link klicken kommt im neuen Fenster eine Fehlermeldung. Im neuen Fenster muss aktualisiert werden damit das Bild angezeigt wird.

Codebeispiel


//image1 wurde initialisiert.
image1.Source = new BitmapImage(
          new Uri("http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg"));//, UriKind.RelativeOrAbsolute));

Funktioniert nicht.

Gibt es eine Möglichkeit Bilder vom Internet auf das Image anzeigen zu lassen?

M
255 Beiträge seit 2006
vor 13 Jahren

Hallo MXP,

versuch es doch mal über ein BitmapDecoder:


private void GetWebImage(Image image, Uri webUri)
{
BitmapDecoder bDecoder = BitmapDecoder.Create(
webUri,
BitmapCreateOptions.PreservePixelFormat,
BitmapCacheOption.None);

if (bDecoder != null && bDecoder.Frames.Count > 0)
image.Source = bDecoder.Frames[0];
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{

GetWebImage(image1, new Uri("http://www.ebsi.te/abc123.jpg";));
}


M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren

Dein Beispiel hab ich versucht. Funktioniert nicht.

BitmapDecoder ,PreservePixelFormat und BitmapCacheOption wird in Silverlight 4 nicht unterstützt glaube ich.

Gibt es ein ähnliches Beispiel mit Silverlight 4?

M
255 Beiträge seit 2006
vor 13 Jahren

Hi,

mein Fehler.
Dir fehlt eine Konvertierung:


ImageSource imgS = new BitmapImage(
         new Uri("http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg", UriKind.RelativeOrAbsolute));
image.SetValue(Image.SourceProperty, imgS);
//bzw. müsste auch gehen:
image.Source = imgS;


M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren

http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg

bzw.

image1.Source = new BitmapImage(new Uri("http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg", UriKind.RelativeOrAbsolute));

dieses Bild wird nicht im silverlight 4.0 angezeigt, aber im internet explorer wird es dargestellt.

image1.Source = new BitmapImage(new Uri("http://www.my-blueplanet.net/attachments/Image/auto.jpg", UriKind.RelativeOrAbsolute));

Dieses Beispiel funktioniert auch im Silverlight 4.0.

Kann sein das dass jpg, irgendwas hat?

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

fürs erste Bild sind Logindaten nötig für den Webserver. Wahrscheinlich hast du im Browser das entsprechende Cockie und es wird angezeigt. In Silverlight hast du es natürlich nicht automatisch.

Baka wa shinanakya naoranai.

Mein XING Profil.

M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren

bei der webseite hab ich kein login.

Da brauchst nur den Pfad oben in der leiste(internet explorer) reinkopieren.

Weitere Möglichkeit: ?
Bild:
http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg

Kann man dieses Bild herunterladen, auf einem Stream speichern und dann diese auf den Image Steuerelement anzeigen lassen? Das ganze mit Silverlight 4.

Wenn ja, dann am besten mit einem Code Beispiel.

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

Stimmt, 401 kommt wenn Login nötig ist, daher war meine Annahme mit dem Login wohl nicht richtig. Ich bekomm sowohl beim IE als auch FF ne 403, Forbidden. 403 kommt wenn man nicht auf die Ressource zugreifen darf. Wenns mal kommt, und mal nicht, wird ich auf Fehlkonfiguration des Servers tippen.

Baka wa shinanakya naoranai.

Mein XING Profil.

M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren

bei mir funktioniert das schon.

http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg

und dann beim ie auf aktualisieren klicken.

M
255 Beiträge seit 2006
vor 13 Jahren

Ich hab inetwa Stück code, was ich oben gepostet habe mit einem Image Control in Silverlight 4 probiert und das Bild wurde angezeigt. Browser ist dabei Chrome gewesen. Ich hab Uri = Absolute genommen vlt wirkt sich das noch aus.


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace SilverlightApplication2
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}

private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
Image image = new Image();
Uri uri = new Uri("http://www.einfach-persoenlich.de/photoblog/bilder/netz-auge.jpg", UriKind.Absolute);
ImageSource img = new System.Windows.Media.Imaging.BitmapImage(uri);
image.SetValue(Image.SourceProperty, img);
image1.Source = image.Source;

}
}
}


<UserControl x:Class="SilverlightApplication2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded">
<Image Height="150" HorizontalAlignment="Left" Margin="60,98,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="200" />
</Grid>
</UserControl>

M
MXP Themenstarter:in
24 Beiträge seit 2010
vor 13 Jahren

danke für die Antwort