Źródło IMG w WPF

Źródło IMG w WPF
0

Siemka w jaki sposób dodać źródło obrazka w aplikacji?

Kopiuj
zdjecie.Source = "img/1.jpg";

daje mi błąd
Error 1 Cannot implicitly convert type 'string' to 'System.Windows.Media.ImageSource'
Natomiast gdy daje w xaml Source = "img/1.jpg" to jest ok
Z góry dzięki pozdrawiam

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
0

Niestety, to tak nie działa. Być może XAML jakoś sam sobie to konwertuje, nie wiem, ale w kodzie musisz ręcznie stworzyć obiekt obrazka, na przykład w ten sposób:

image.Source = new BitmapImage(new Uri(@"sciezka/do/twojego/obrazka.png"));

Kopiuj
0

Dostaje teraz taki błąd

Kopiuj
 
An exception of type 'System.UriFormatException' occurred in System.dll but was not handled in user code

Additional information: Nieprawidłowy identyfikator URI: nie można określić formatu identyfikatora URI.

If there is a handler for this exception, the program may be safely continued.

Zrobiłem sobie

Kopiuj
            try
            {
                zdjecie.Source = new BitmapImage(new Uri(@"img/1.png"));
            }
            catch (UriFormatException)
            {
                MessageBox.Show("nie dziala");
            }
 

i niestety wyskakuje błąd probowałem z /img/1.png z formatem jpg i niestety cały czas to samo co moze byc nie tak?

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
0

No to spróbuj może tak:

try
{
zdjecie.Source = new BitmapImage(new Uri(@"img/1.png", UriKind.RelativeOrAbsolute));
}
catch (UriFormatException)
{
MessageBox.Show("nie dziala");
}

Kopiuj

Rozumiem że obrazek ten nie jest związany z samym programem, tj. nie jest w zasobach? Jeżeli jest, to zamiast tej ścieżki, trzeba dać "pack://application:,,,/NAZWA_APLIKACJI;component/obrazek.png".
0

A nie da się w jakiś bardziej ludzki sposób dodać kilku zdjęć to tablicy żeby się po nich poruszać?

wedlock
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Bartoszyce
  • Postów:180
1
SieUczeSie napisał(a):

Natomiast gdy daje w xaml Source = "img/1.jpg" to jest ok

parser XAML posiada mnóstwo konwerterów. Tak naprawdę kod XAML jest zamieniany na zwykły kod C# i parser tworzy instancje obiektów. Dlatego string img/1.jpg jest zamieniany na URI ( "img/1.jpg", UriKind.Relative ).

Sam aktualnie pobieram wiedzę z książki Jarosława Ciska, nie wiem czy mogę podać tytuł na forum i nie łamać reguł.

AlfaLeporis
+1 za info nowe dla mnie - powodzenia w nauce :)
somekind
Dlaczego podanie tytułu książki miałoby być łamaniem jakichś reguł? I dlaczego podanie autora nie?
wedlock
Pomijając pytanie samekind-a.... Jarosław Cisek - Tworzenie nowoczesnych aplikacji graficznych WPF
wedlock
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Bartoszyce
  • Postów:180
0
SieUczeSie napisał(a):

A nie da się w jakiś bardziej ludzki sposób dodać kilku zdjęć to tablicy żeby się po nich poruszać?

Poprzez Binding do kolekcji a najlepiej ObservableCollection. Trzeba tylko pamiętać aby zdefiniować Template aby kontrolka widziała jak wyświetlać dane. Nie powiem ci jak bo sam jestem przed tym rozdziałem w książce :)

DC
  • Rejestracja:około 12 lat
  • Ostatnio:około 2 godziny
  • Postów:411
0

Można też tak:

Kopiuj
zdjecie.Source = new ImageSourceConverter().ConvertFromString(@"../../Images/ikona.ico") as ImageSource;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.