2012-10-05 3 views
1

저는 대부분 MenuItem에 아이콘을 사용하고 있습니다. 이 모든 이미지가 16x16 픽셀 아이콘으로 표시되기를 바랍니다. 원본 이미지의 대부분은 해당 형식을 가지고 있으며, 일부는 32x32 일 수 있지만 모두가 약간 확장되어 있습니다 (18x18 정도).MenuItem에있는 모든 이미지의 너비와 높이를 설정하십시오.

내가 이것을 시도했다, 그러나 (이 끔찍한 코딩이 경우, 내가 XAML에 새로 온 나에게 알려 주시기 바랍니다..) 아이콘에 영향을주지 않습니다

<Style TargetType="MenuItem"> 
    <Setter Property="Padding" Value="6,3" /> 
    <Setter Property="Height" Value="22" /> 
    <Setter Property="ItemContainerStyle"> 
     <Setter.Value> 
      <Style TargetType="Image"> 
       <Setter Property="Height" Value="16" /> 
       <Setter Property="Width" Value="16" /> 
      </Style> 
     </Setter.Value> 
    </Setter> 
</Style> 

답변

0

꽤 오랫동안 검색 후, 나는 몇 가지 구글 검색 후 https://stackoverflow.com/a/4078275/653473을 산출 키워드 "중첩 스타일"을 가로 질러왔다.

<Style TargetType="MenuItem"> 
    <Setter Property="Padding" Value="6,3" /> 
    <Setter Property="Height" Value="22" /> 
    <Style.Resources> 
     <Style TargetType="Image"> 
      <Setter Property="Height" Value="16" /> 
      <Setter Property="Width" Value="16" /> 
     </Style> 
    </Style.Resources> 
</Style> 
2

는 내가 설정 추측 메뉴의 ItemContainerStyle 속성에 대한 TargetType="Image"의 스타일은별로 의미가 없습니다. ItemContainerStyle을 설정할 필요가 없습니다. 각 MenuItem의 높이를 수정하는 스타일을 사용하면됩니다. 아이콘 이미지는 자동으로 크기가 조절됩니다.

<Style TargetType="MenuItem"> 
    <Setter Property="Height" Value="22" /> 
</Style> 

은 아마도 이미지의 여백을위한 작은 값으로, 어떤 이미지에 Icon 속성을 설정합니다.

<MenuItem Header=... > 
    <MenuItem.Icon> 
     <Image Margin="2" Source=... /> 
    </MenuItem.Icon> 
</MenuItem> 

당신이 정말로 특정 값으로 이미지 크기를 수정해야 할 경우, 단순히 이미지의 WidthHeight 속성을 설정합니다.

<MenuItem Header=... > 
    <MenuItem.Icon> 
     <Image Width="16" Height="16" Source=... /> 
    </MenuItem.Icon> 
</MenuItem> 
+0

서로 다른 차원이야 때문에, 나는 한 –

+0

'<이미지 너비 = "16"높이 해상도를 유지하고 대신에 높이/폭 제한을 설정하는 뷰 박스에 이미지를 삽입 할 = "(16) "Source = ... /> 그게 바로 내가 원하는 것입니다. 모든 너비와 높이 속성을 각 '응용 프로그램의 창에서'MenuItem.Icon' 속성의 값으로 사용되는 각 '이미지'에 대해 자동으로 설정해야합니다. – dialer

+0

@dialer 그렇다면 MenuItem 높이를 고치고 이미지 크기를 자동으로 조정하십시오. – Clemens

관련 문제