2017-09-07 16 views
0

내 컨트롤에서 wpf 스타일을 사용하므로 한 번에 여러 컨트롤에서 스타일을 사용할 수 있습니다. 그것은 정상적으로 작동합니다. 예를 들어 나는 saveButtonStyle을 만들었고 응용 프로그램의 모든 저장 버튼에 적용했습니다. 하지만 그것은 MenuItems에서 작동하지 않습니다. 항목 옆에 아이콘이있는 내 메뉴 항목의 스타일을 만들었습니다. 이것은 한 번의 스크린 샷입니다. enter image description hereWPF 스타일 캔트는 여러 컨트롤에서 작동하지 않습니다.

Datagrid에는 ContextMenu가 있으며 여러 메뉴 항목이 있습니다. 이 경우 Set Alarm에주의하십시오. 아이콘이 있습니다. 이 알람 메뉴 설정 항목은이 메뉴 옆에있는 다른 메뉴의 DataGrid에도 있습니다. 내가 한 그것이 enter image description here

도 나타납니다하지만 난 잘 아이콘이 사라지고 다른 데이터 그리드로 다시 클릭하고 늘 돌아올 때 문제가 있음을 클릭합니다. 이 화면은 여기 enter image description here

촬영 전

<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}"> 
      <Setter Property="Icon"> 
       <Setter.Value> 
        <Image Source="Content/AlertIcon.png" Width="20" Height="20" /> 
       </Setter.Value> 
      </Setter> 
     </Style> 

만든 스타일입니다 그리고 여기에 내가 내 컨트롤에 그런 일이 왜

<MenuItem x:Name="customerContextMenuSetAlarm" Header="SetAlarm" Style="{StaticResource menuItemAlert}" Click="customerContextMenuSetAlarm_Click"/> 

당신은 알고 계십니까 적용하는 방법이다?

+0

스타일을 적용하기 위해 DynamicResource를 사용해 보았습니다. 그것 doesnt 일 –

답변

2

스타일 menuItemAlertImage의 인스턴스를 하나만 만들고 한 곳에서만 표시 할 수 있습니다. 이를 극복하기 위해 Image에 대한 별도의 비공유 리소스를 만듭니다.

<Image x:Key="AlertIcon" x:Shared="False" Source="Content/AlertIcon.png" Width="20" Height="20" /> 

<Style x:Key="menuItemAlert" TargetType="{x:Type MenuItem}"> 
    <Setter Property="Icon" Value="{StaticResource AlertIcon}"/> 
</Style> 
+0

와트는 빠르고 정확했다. 감사. 지금은 이해가됩니다. –