2009-04-02 3 views
7

Window.Resources에 선언 된 여러 아이콘이 있습니다. 그들은 처음으로 나타낼 필요가있을 때 잘 나타납니다 (예 : 메뉴가 클릭되고 MenuItem 아이콘이 작동 함). 그러나 다른 메뉴 (예 : 컨텍스트 메뉴)가 표시된 후에 원래 아이콘이 사라지고 반환되지 않습니다. 마치 아이콘을 처음 사용했던 마지막 요소가 처음에는 그대로 유지됩니다.WPF : 사라지는 아이콘

<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}" /> 

나는 24 비트 PNG, 인터레이스 24 비트 PNG 및 8 비트 PNG하지만 같은 일이 발생로 저장 시도했습니다. 그것은 단지 하나가 아니며, 한 곳 이상에서 사용되는 모든 아이콘이 이런 식으로 행동합니다.

답변

9

귀하의 리소스가 Image이며 Control이기 때문입니다. Control에는 부모 한 명만있을 수 있으므로 각 MenuItem에서 즉각적으로 부모를 다시 양육하고 있습니다.

옵션은 다음과 같습니다

  1. Image를 사용하는 대신 ImageSource 또는 이미지의 URI를 포함 심지어 string를 사용하지 마십시오.
  2. 리소스를 x:Shared XAML 특성과 공유하지 않도록 설정합니다. 이렇게하면 필요에 따라 여러 개의 Image 컨트롤이 만들어집니다.
+0

감사 : x : Shared 특성이 트릭을 수행했습니다. – Echilon