Saya berasal dari sebagian besar web dan sedikit latar belakang Windows Forms. Untuk proyek baru, kami akan menggunakan WPF. Aplikasi WPF akan membutuhkan 10 - 20 ikon dan gambar kecil untuk tujuan ilustrasi. Saya berpikir tentang menyimpan ini di majelis sebagai sumber daya tertanam. Apakah itu cara yang benar untuk pergi?
Bagaimana cara menentukan di XAML bahwa kontrol Gambar harus memuat gambar dari sumber daya yang disematkan?
sumber
DynamicResource
ekstensi markup alih-alihStaticResource
, dengan asumsi Anda akan tahu kunci pada waktu kompilasi. Di WPF Anda dapat membuat kamus sumber daya saat runtime. Bahkan, itulah yang terjadi ketika Anda memuat dokumen Xaml, hanya saja Anda tidak melihat C # yang setara.Width="{Binding Source.PixelWidth, RelativeSource={RelativeSource Self}}"
keImage
, karena kalau saya sering melihat gambar mendapatkan aneh sekali ditingkatkan untuk beberapa alasan (seperti 16x16 ikon membentang untuk sesuatu yang tampak seperti 200x200 piksel).Saya menemukan praktik terbaik menggunakan gambar, video, dll. Adalah:
Contoh
Manfaat:
sumber
Beberapa orang bertanya tentang melakukan ini dalam kode dan tidak mendapatkan jawaban.
Setelah menghabiskan berjam-jam mencari saya menemukan metode yang sangat sederhana, saya tidak menemukan contoh dan jadi saya membagikan milik saya di sini yang berfungsi dengan gambar. (Milik saya adalah .gif)
Ringkasan:
Ia mengembalikan BitmapFrame yang tampaknya disukai "ImageSource".
Menggunakan:
Metode:
Belajar:
Dari pengalaman saya, string paket bukanlah masalahnya, periksa aliran Anda dan terutama jika membacanya pertama kali telah menetapkan pointer ke akhir file dan Anda perlu mengatur ulang ke nol sebelum membaca lagi.
Saya harap ini menyelamatkan Anda berjam-jam saya berharap bagian ini punya untuk saya!
sumber
Dalam kode untuk memuat sumber daya di rakitan pelaksana tempat gambar saya
Freq.png
berada di folderIcons
dan didefinisikan sebagaiResource
:Saya juga membuat fungsi:
Penggunaan (asumsi Anda menempatkan fungsi dalam kelas ResourceHelper):
Catatan : lihat URI Paket MSDN di WPF :
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
sumber
new Uri(@"pack://application:,,,/" + pathInApplication)
juga berhasil.Ya, itu jalan yang benar.
Anda bisa menggunakan gambar di file sumber daya hanya menggunakan jalur:
Anda harus mengatur aksi build file gambar ke "Resource".
sumber
Deskripsi lengkap cara menggunakan sumber daya: Sumber Daya Aplikasi WPF, Konten, dan File Data
Dan bagaimana referensi mereka, baca "Kemas URI di WPF".
Singkatnya, bahkan ada sumber daya referensi dari majelis referensi / referensi.
sumber
Ini bekerja untuk saya:
sumber
Jika Anda menggunakan Blend , untuk membuatnya lebih mudah dan tidak memiliki masalah dalam mendapatkan jalur yang benar untuk atribut Source , cukup seret dan letakkan gambar dari panel Project ke desainer.
sumber
Ya, itu jalan yang benar. Anda dapat menggunakan gambar dalam file Sumber Daya menggunakan jalur:
sumber
Berikut ini berfungsi dan gambar yang akan ditetapkan adalah sumber daya di properti:
sumber