1

以前は機能していたコードがいくつかありますが、現在は機能していません (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 フォームでイメージ コントロールを作成します)。

これは以前は機能していました(修正の優先度は高くなかったので、いつ機能しなくなったのかわかりません)

4

1 に答える 1

2

getBitmapImageFromResources メソッドに追加します

_bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
于 2013-02-16T18:27:48.827 に答える