Her widget için ikon oluşturulup bu ikonlar projede kullanılabilir. Bunun için yapılması gereken 48x48 pixel boyutlarında PNG dosyasını Base64 ile encode ederek bir string oluşturmak ve GetWidget metodunda Widget tanımı yapılırken ikon olarak göstermektir. Her hangi bir dosyanın Base64 encode stringini oluşturmak için aşağıdaki sayfadan veya farklı bir uygulamadan faydalanabilirsiniz.
http://jpillora.com/base64-encoder/
Base64Encode string oluşturulduktan sonra aşağıdaki kod örneğindeki gibi kullanılabilir;
PluginInfo = new PluginInfo
{
PluginIconBase64String = "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAATvAAAE7wEn19wfAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAelQTFRF////
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA
EAAAEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAgACAgACAgACAgAC
AgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAgACAQABAQABAQABAQABAQABAQABAQABAQABAQABAQABAQABAQABAQABAQABAQADAQADAQADAQADAQADAQADAQACAQ
ACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACAQACK664ZAAAAKJ0Uk5TAAECAwQFBgcICgsMEBESExQVFhca
Gx4fISIkJictLi8wMTIzNTo8RkdISUtOT1BSU1VWWFtcXV5fYGFiZGVmaGlqa2xtbm9zdHV2eXp7fH1+goWGh4iJiouMjpCRk5SWl5ieoKGjpKWmp6ipq6yusLO0tbe4uru8vb7Aw8TGx8nO0tPU1dbX2dzd3t/i5ufq6
+zt7u/w8vT19vf4+fr7/P3+cHxY4gAAAnJJREFUWMPFl/dXE0EQx78kQQQ0AVQUgqBBRBRLjC0WFFvsvWNDLIjBDkqMoliIiiaCGohBZP9Ss+ft3nGnxszmPeeHezs7e593uzM3OwPosqgzzXKUiB
+GTB9mBKk3ABso77N2A3CSBIjkEVAfDIZujisANPG9owHKD7Rz2VGCxZMUQE1KV+OleEwBnJb6JpyiAM5LfRuOUwB1YuOjM/CAdIjVZ7q4HJkF34SaG2te0
+PA29S07tKodcFkYmjwVZoeypGF3FT1iAgYWimMG0cogFStYV1DAbSYTrfOmP7xr4AbZvcE5HS48fsf3Vje/Nxkm2s2XRezd13Y9Zc4KOyWpkHzfKlMmG89wFUrwNk68IXLUz/K5MqLv15tmMafZ8X397I
+F9yfLYBlUq9Glxg2a6YtLLYKmK9vO+xyx9hRYL8FcE3qB3FYDD2aKZwZPTkU1+daM+6YSFag+MNUgHEqjbgshk7NdMd0YG/Y10rgCmsDjk0FuKN64N92FLwUUQQrIFzYxx4ClelkERqsXvC
t4OIFtgpLwgpIFGFekq0HetgSOId/70bHnm9i/XvbF4SAfewesJs7qNsO8Hd03P9kLB+wAcZmZwL6I4/qKHAuayg/swHYarhSbA7KWAzYmxXQYwecAPoz4VEwngTWZgX0qgJy34LyIaq5UTGQlENZ
+WdS/p2XynuoCrcoCcWx+YWW0qLLUTFCSWnKSTU/aV35Ysn/1aZ+uSpf7zkWGMoljlKRpVrmLZCF5kxaoXlB6ttppa7hgCCt2PaO6Wq8hFbuwxNq49JSTGw41FseLrWBwM5Olabr//eNyq2vcvNNbv9/Aos1Tf4megHjAAAAAElFTkSuQmCC",
};
PluginInfo.Widgets = new List<PluginWidgetInfo>()
{
new PluginWidgetInfo()
{
tag = 1,
name = "Logo Plugin Template",
header = ".NET Logo Plugin",
description = PluginInfo.PluginDescription,
image = PluginInfo.PluginIconBase64String,
settings = new List<PluginWidgetSettings>()
{
new PluginWidgetSettings()
{
name = "Firma",
type = "string",
value = "Logo"
}
}
}
};
ya da ;
Program üzerinden Add-- New İtem diyerek Resources dosyası eklenir.
Resource içerisine kullanılacak olan 48x48 boyutlu .ico uzantılı resim dosyası eklenir.
Kod kısmında Plugin info içerisinde bulunan PluginIconBase64String = Common.LoadImage(Resource1.resimdosyası)
diyerek de ikonumuzu ekleyebiliriz.
PluginInfo = new PluginInfo {
PluginName = "LogoApp",
PluginApiKey = "{}",
PluginDescription = "Logo Plugin Template",
PluginVersion = 1,
OnEvent = "{}",
ExecuteAction = "{}",
GetConfig = "{\"type\":\"user\"}",
PluginIconBase64String = Common.LoadImage(Resource1.resimdosyasi),
};
İkon eklemek için bir diğer yöntem ise App yükle butonuyla yüklenen appler için ikon, başlık ve açıklama bilgisi json dosyasından alınabilmesi sağlanmıştır. Dosya ismi pluginismi.json formatında olmalıdır.
Örnek : LogoDemoApp.json İlgili Plugin dizinin içinde, manifest dosyasının bulunduğu yerde olmalı.
{
"imgdata": "Base64 formatında 48x48 image",
"description": "LogoDemoUygulaması, test için geliştirilmiştir.",
"header": "Logo Demo App"
}