MenuItem.Icon теряет свое изображение - PullRequest
0 голосов
/ 15 марта 2011

у меня есть ресурс как;

  <Window.Resources>

    <MenuItem Header="*Rename" x:Key="ctxItem" x:Name="removeItem" Click="removeItem_Click" Padding="5,5,5,5">
        <MenuItem.Icon>
            <Image Margin="0,0,0,0" Source="../images/removeitem.png" Width="16" Height="16" />
        </MenuItem.Icon>
    </MenuItem>

В коде я делаю следующее:

ContextMenu ctxTmp = new ContextMenu();

        MenuItem mni = ((MenuItem)this.Resources["ctxItem"]);
        MenuItem mniTmp = new MenuItem();
        mniTmp.Click += new RoutedEventHandler(removeItem_Click);
        mniTmp.Name = "removeItem" + x;
        mniTmp.Tag = pic;
        mniTmp.Icon = mni.Icon;
        mniTmp.Header = mni.Header;
        mniTmp.CommandTarget = pic;
        ctxTmp.Items.Add(mniTmp);
        x++;
        return ctxTmp;

И устанавливаю ContextMenu моего объекта на возвращаемый элемент.

Поведение выглядит так:мой UIelement в необходимом холсте, и contextMenu в порядке.Но когда я добавляю второй объект.Контекстное меню по-прежнему работает, но изображение, которое я использую, не отображается. Оно странное и не может его понять.

Спасибо, Пойраз

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Вы не можете повторно использовать один и тот же элемент Image в двух элементах MenuItem.Вы фактически размещаете один и тот же визуал в двух местах, что недопустимо.Вам потребуется создать новый экземпляр Image, даже если он указывает на то же изображение.

Однако вы можете повторно использовать экземпляры ImageSource.

0 голосов
/ 15 марта 2011

Я удивлен, что ваш путь к источнику изображений работает.
В соответствии с этим веб-сайтом site , я преобразую ваш путь:

Source="../images/removeitem.png"  

в URI

Source="pack://application:,,,/AssemblyName;component/images/removeitem.png"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...