Pergunta

Eu tenho vários ícones que são declaradas em Window.Resources. Eles mostram-se bem o primeiro tempo eles precisam aparecer (por exemplo: um menu é clicado, o MenuItem ícone de obras), mas após o outro Menu (por exemplo: um menu de contexto) é mostrado, o ícone desaparece originais e não retorna. É como se o último elemento que usou o ícone pela primeira vez começa a mantê-lo.

<Window.Resources>
    <Image x:Key="Chart_16"
           Source="pack://application:,,,/Resources/images/chart_16.png" />
    ...
<Window.Resources>

<MenuItem Header="Summary"
          Command="loc:AppCommands.ShowSummary"
          Icon="{StaticResource Chart_16}" />

Eu tentei salvá-lo como um 24bit PNG, um PNG 24bit entrelaçado e um 8bit PNG, mas acontece a mesma coisa. Não é apenas um, a cada ícone que é usado em mais de um lugar se comporta dessa maneira.

Foi útil?

Solução

Isso porque o seu recurso é uma Image, que é um Control. Controls só pode ter um pai assim que é efectivamente a ser re-parented em cada MenuItem na mosca.

As suas opções são:

  1. Não use Image e passar a usar ImageSource ou mesmo um string contendo o URI da imagem.
  2. Defina o recurso para não compartilhado com o atributo x:Shared XAML. Isto irá criar vários controles Image conforme necessário.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top