2013-07-18 4 views
3

팝업 (하위) MenuItem에서 왼쪽의 공백을 제거하고 해당 공백에 대해 완전히 새로운 템플릿을 만들지 않고도 필요한 공간을 차지하도록하는 방법을 찾고 싶습니다. 제어. 이 상황에서 사용할 수있는 종류의 종속성 속성 또는 그 종류의 특성이 있습니까? 나는 새로운 템플릿을 만들려고 노력했고, 성취하기 위해 노력하고있는 것이 성가시다. 정말 과잉이라고 생각한다.크기 MenuItem은 XAML의 내용에 맞 춥니 다

누군가 (특히 새 템플릿을 만들지 않고 'MenuItem'왼쪽에있는 성가신 상자를 제거하는 방법에 대한) 제안 사항이 있으면 알려 주시기 바랍니다. 어떤 도움을 주시면 감사하겠습니다.

+0

음에 추가하는 경우를 참조하십시오, 나는 힘든 상황에서 자신을 발견했습니다. 두 제안 된 답변은 실제로 일을 끝내지만 실제로 만 받아 들일 수는 있습니다 ... Tim의 대답은 수정 된 템플릿을 사용해야하므로 장기적으로 더 많은 유연성을 제공 할 것입니다. Nitesh의 대답은 실제로 해결됩니다. 그 질문은 정확하지만 덜 우아하고 가단적인 방식으로 질문되었습니다. –

+0

이건 정말 나에게 힘든 일이지만, Nitesh의 대답이 질문의 기준을 완전히 따랐으므로 (사용자 지정 템플릿이 관련되지 않음), 나는 그의 대답을 받아 들일 것입니다. 팀, 당신의 대답은 매우 도움이되었고 나는 기꺼이 그것을 upvote거야. 내가 받아 들일 수없는 일은 부끄러운 일이다. 그래도 도움을 주신 두 분께 감사드립니다. –

+0

별거 아니에요. 그냥 두 가지 대답에서 사용할 수있는 무언가를 얻길 바랍니다. – Tim

답변

1

트릭이 있습니다. 그것은 스타일에 목적 설정 ItemsPanel를 해결하고 자원

<Style TargetType="{x:Type MenuItem}"> 
    <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <StackPanel Margin="-20,0,0,0" Background="Gray"></StackPanel> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 


<Menu> 
    <MenuItem Header="MI1">     
     <MenuItem Header="MI1"></MenuItem> 
     <MenuItem Header="MI2"></MenuItem> 
    </MenuItem> 
    <MenuItem Header="MI2"></MenuItem> 
</Menu> 
1

당신이 그것을 retemplating 않고 그것을 할 수 있다고 생각하지 마십시오. Here's another question that asked for the icon area to be removed뿐만 아니라 더 많은 것을 요구했습니다. 그들은 다시 템플릿을 만들어야했고 대답에는 사용 된 템플릿이 포함되어있어서 프로세스가 쉬워졌습니다.

또 다른 answer from MSDN forums은 아이콘 영역을 제거한 것입니다.

이상적은 아니지만 "ShowIconArea"속성 등이 없습니다.

+0

답장을 보내 주셔서 감사합니다. 이 문제를 다루는보다 효율적인 방법은 없습니다. –

관련 문제