以前は機能していたコードがいくつかありますが、現在は機能していません (SL4 -> SL5 なのか、これを引き起こした他の更新なのかはわかりません)。
右クリック メニューの MenuItems をオンザフライで作成しており、次のようにアイコンを割り当てています。
public static class XamlUtility
{
public static string makeResourcePngUri(string sName)
{
return "/MyApplication;component/Resources/" + sName + ".png";
}
public static BitmapImage getBitmapImageFromResources(string sName)
{
BitmapImage _bmi = null;
_bmi = new BitmapImage(new Uri(makeResourcePngUri(sName), UriKind.Relative));
return _bmi;
}
public static Image getImageFromResources(string sName)
{
Image _im = new Image();
_im.Source = getBitmapImageFromResources(sName);
return _im;
}
}
public static class XamlUtility
{
public static string makeResourcePngUri(string sName)
{
return "/MyApplication;component/Resources/" + sName + ".png";
}
public static BitmapImage getBitmapImageFromResources(string sName)
{
BitmapImage _bmi = null;
_bmi = new BitmapImage(new Uri(makeResourcePngUri(sName), UriKind.Relative));
return _bmi;
}
public static Image getImageFromResources(string sName)
{
Image _im = new Image();
_im.Source = getBitmapImageFromResources(sName);
return _im;
}
}
...
public static MenuItem addMenuItem(ContextMenu ctxmenu, string name, bool visible = true, MenuClickHandler clickHandler = null, string imageName = null)
{
string _name = name.Replace(' ', '_');
MenuItem menu = new MenuItem()
{
Name = "mnu" + _name,
Header = name,
Icon = XamlUtility.getImageFromResources(imageName ?? _name)
};
...
イメージは、以前にロードした場合にのみロードされます (たとえば、ContextMenu を生成する前に、いくつかの xaml フォームでイメージ コントロールを作成します)。
これは以前は機能していました(修正の優先度は高くなかったので、いつ機能しなくなったのかわかりません)