it-swarm-tr.com

.NET'te kaynaklar nasıl oluşturulur ve kullanılır

Programımın çeşitli bölümlerinde kolayca başvurabileceğim ve kullanabileceğim bir kaynağı nasıl oluşturabilirim?

Özel sorunum, programın durumuna bağlı olarak simgesini değiştirmek istediğim bir NotifyIcon'um olması. Yaygın bir problem, fakat uzun zamandır mücadele ediyorum.

168
Matthew Scharley

Pekala, etrafta araştırma yaptıktan ve StackOverflow'un etrafındaki çeşitli noktaları bir araya getirdikten sonra (Tanrım, bu yeri çoktan seviyorum), sorunların çoğu bu aşamadan geçti. Yine de sorunumun cevabını bulmayı başardım.

Bir kaynak nasıl oluşturulur:

Benim durumumda bir simge oluşturmak istiyorum. Ne tür bir veri kaynağı olarak eklemek isterseniz yapın, benzer bir işlemdir.

  • Kaynak eklemek istediğiniz projeye sağ tıklayın. Çözüm Gezgini'nde bunu yapın. Listeden "Özellikler" seçeneğini seçin.
  • "Kaynaklar" sekmesini tıklayın.
  • Çubuğun üstündeki ilk düğme, eklemek istediğiniz kaynak türünü seçmenize izin verir. İpte başlamalı. Bir simge eklemek istiyoruz, bu yüzden üzerine tıklayın ve seçenekler listesinden "Simgeler" i seçin.
  • Ardından, ikinci düğmeye, "Kaynak Ekle" ye gidin. Yeni bir kaynak ekleyebilir veya önceden yapılmış bir simge varsa, onu da ekleyebilirsiniz. Hangi seçeneği seçerseniz seçin istemlerini izleyin.
  • Bu noktada, yeni eklenen kaynağı düzenlemek için çift tıklayabilirsiniz. Kaynakların Çözüm Gezgini'nde de göründüğünü ve buraya çift tıklamanın aynı derecede etkili olduğunu unutmayın.

Bir kaynak nasıl kullanılır:

Harika, yeni kaynağımız var ve bu güzel değişen ikonlara sahip olmak istiyoruz ... Bunu nasıl yapıyoruz? Şanslıyız ki C #, bunu fazlasıyla kolaylaştırıyor.

Tüm kaynaklarınıza erişmenizi sağlayan Properties.Resources adlı statik bir sınıf var, bu yüzden kodum şu kadar basit oldu:

paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;

Bitti! Tamamlandı! Nasıl olduğunu bildiğinde her şey basittir, değil mi?

287
Matthew Scharley

Yukarıdakiler, Visual Studio 2010'dan beklediğim gibi aslında benim için işe yaramadı. Properties.Resources'a erişmeme izin vermedi, izin sorunları nedeniyle erişilemez olduğunu söyledi. Sonunda, kaynağın özelliklerinde Kalıcılık ayarlarını değiştirmek zorunda kaldım ve daha sonra, MyNamespace.Properties.Resources aracılığıyla simgeye erişmeme izin veren otomatik bir alıcıya sahip olan Resources.Designer.cs dosyası aracılığıyla buna nasıl erişeceğimi buldum. .NameFromAddingTheResource. Bu yalnızca kullanıma hazır, Icon türünde bir nesne döndürür.

8

Yukarıdaki yöntem iyi çalışıyor.

Başka bir yöntem (burada web varsayalım) sayfanızı oluşturmaktır. Sayfaya kontroller ekleyin. Ardından, tasarım modundayken gidin: Araçlar> Yerel Kaynak Oluştur. Bir kaynak dosyası, kaynak dosyada eşlenen sayfadaki tüm kontrollerin bulunduğu çözümde otomatik olarak görünecektir.

Diğer diller için kaynaklar oluşturmak için, uzantıdan önce 4 karakter dilini dosya adının sonuna ekleyin (Account.aspx.en-US.resx, Account.aspx.es-ES.resx ... vb.).

Kod kodundaki belirli girişleri almak için bu yöntemi çağırmanız yeterlidir: GetLocalResourceObject ([kaynak giriş anahtarı/adı]).

6
Chuck Conway