Diskuze: WPF image source

C# .NET .NET (C# a Visual Basic) WPF image source American English version English version

Avatar
roks
Člen
Avatar
roks:

Zdravím, v projekte, na ktorom teraz pracujem mám v XAML kóde napísané toto:

<Image Name="zvolenyUtvar" Width="100" Height="100" Margin="10, 10, 0, 0" Source="Obrazky/Prierezy/Utvary_vlastny.bmp"/>

Ale keď chcem spraviť, aby sa zmenil obrázok, tak keď napíšem toto :

BitmapImage obrazok = new BitmapImage();
obrazok.UriSource = new Uri("Obrazky/Prierezy/Utvary_vlastny.bmp");
zvolenyUtvar.Source = obrazok;

a píše mi chybu : "Invalid URI: The format of the URI could not be determined."

Poradili by ste mi niekto prosím, ako na to? :)

 
Odpovědět 28.1.2014 20:59
Avatar
Paradise
Redaktor
Avatar
Paradise:

Nastav UriKind na Relative

 
Nahoru Odpovědět 28.1.2014 21:05
Avatar
Odpovídá na roks
Michal Žůrek (misaz):

Ta cesta je špatně, nebo si tam doplnn druhý parametr.

Nahoru Odpovědět 28.1.2014 21:06
Nesnáším {}, proto se jim vyhýbám.
Avatar
roks
Člen
Avatar
Odpovídá na Paradise
roks:

Relative keď nastavím, tak sa mi nič nestane, akurát mi nevyhodí chybu

 
Nahoru Odpovědět 28.1.2014 21:09
Avatar
roks
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
roks:

prečo by mala byť cesta špatne? :o ... a aký druhý paramater? ak UriKind tak ten mi nepomáha :(

 
Nahoru Odpovědět 28.1.2014 21:10
Avatar
Paradise
Redaktor
Avatar
Paradise:

A co si ty obrázky naházet do Resources? Nebudeš to muset řešit a odkazování bude jednodušší.

 
Nahoru Odpovědět  +2 28.1.2014 21:39
Avatar
Petr Nymsa
Redaktor
Avatar
Nahoru Odpovědět 28.1.2014 21:41
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
roks
Člen
Avatar
Odpovídá na Petr Nymsa
roks:

Aha, ale ja tomu asi predsa ešte nechápem, vlastne mám tam vložiť tento kód? :

Uri uri = new Uri("pack://application:MenoProjektu/Obrazky/Prierezy/Utvary_vlastny.bmp", UriKind.Absolute);

? :)

 
Nahoru Odpovědět 28.1.2014 21:51
Avatar
roks
Člen
Avatar
Odpovídá na Paradise
roks:

A ako to pridám? lebo doteraz som robil vo WinForm a v niektorých oblastiach sa tu neviem vôbec zorientovať :/

 
Nahoru Odpovědět 28.1.2014 21:52
Avatar
Paradise
Redaktor
Avatar
Odpovídá na roks
Paradise:

Najdi v Solution Exploreru Properties, pod tím je Resources.resx. Přepni se ze Strings na Images a naházej to tam. V kódu pak:

Properties.Resources.[jmeno z Resources]

Ještě k tomu, jak jsi to zkoušel předím. Měl jsi tu složku přidam do projektu? Jestli jo, tak ji musíš ještě ve vlastnostech nastavit Build Action na Content. Pak by to mělo jít s tím Uri.

Editováno 28.1.2014 21:57
 
Nahoru Odpovědět 28.1.2014 21:54
Avatar
roks
Člen
Avatar
Odpovídá na Paradise
roks:

Vďaka mám to, ale ešte o jednu vec ťa poprosím :) mám že :

BitmapImage obrazok = MojProjekt.Properties.Resources.Utvary_vlastny;

a píše mi chybu, že z Resources mám System.Drawing a BitmapImage je System.Media.Image, tak ako to skonvertujem? :)

 
Nahoru Odpovědět 28.1.2014 22:02
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na roks
Jan Vargovský:
BitmapImage obrazok = (Bitmap)MojProjekt.Properties.Resources.Utvary_vlastny;

EDIT: Blbost, najdi si bitmap to bitmapimage

Editováno 28.1.2014 22:10
 
Nahoru Odpovědět  +1 28.1.2014 22:06
Avatar
roks
Člen
Avatar
Odpovídá na Jan Vargovský
roks:

Lenže keď dám iba (Bitmap) tak mi to prekonvertuje iba do bitmap-y ktorá sa nachádza v System.Drawing ale ja ju potrebujem hodiť do BitmapImage ktorá sa nachádza v System.Window­s.Media.Imaging a keď napíšem pred to (BitmapImage) tak to nepomáha :/

 
Nahoru Odpovědět 28.1.2014 22:09
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na roks
Jan Vargovský:

To protože bitmapa ani image neděděí z bitmapimage -> najdi si jen bitmap to bitmapimage. Těch metod jak to převést je opravdu hodně.

 
Nahoru Odpovědět 28.1.2014 22:11
Avatar
roks
Člen
Avatar
Odpovídá na Jan Vargovský
roks:

Tak vďaka :) aj keď vyzerá to dajak zložito ale hádam to pôjde :)

 
Nahoru Odpovědět 28.1.2014 22:37
Avatar
Paradise
Redaktor
Avatar
Paradise:

Taky si z toho v Malování můžeš udělat png :)

 
Nahoru Odpovědět 28.1.2014 22:41
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na roks
Jan Vargovský:

Uděláš si jednu metodu, kterou si můžeš zkopírovat :D

 
Nahoru Odpovědět 28.1.2014 22:42
Avatar
roks
Člen
Avatar
roks:

Ok, už to mám všetko vďaka :)

 
Nahoru Odpovědět 29.1.2014 21:24
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.