2010-08-13 1 views
4

WPF Calendar 컨트롤을 가로로 늘일 수 있습니까? 컨트롤을 통해 HorizontalAlignment = "Stretch"를 설정할 수 있지만 속성을 "Center"로 설정하는 것과 같은 효과가 있습니다. 컨트롤의 너비를 변경하지만 표시된 달력은 컨트롤 중앙에 같은 크기로 유지됩니다. 표시된 캘린더를 컨트롤의 가장자리까지 늘리고 싶습니다.WPF : 가로로 캘린더를 늘리시겠습니까?

ViewPort로 할 수 있다는 것을 기억하는 것 같지만 어떻게하는지 보여주는 것은 아무것도 없습니다. 당신의 도움을 주셔서 감사합니다.

답변

22

나는 당신이 Viewbox 찾고있을 것 같아요 :

는 스트레칭이 에 하나의 아이가 사용 가능한 공간을 채우기 확장 할 수있는 콘텐츠 장식을 정의합니다.

캘린더를 Viewbox의 하위 항목으로 만들면 ScaleTransform을 적용하여 사용 가능한 모든 공간을 차지합니다.

<Viewbox> 
    <Calendar/> 
</Viewbox> 
+0

감사합니다. 다른 사용자를위한 참고 사항 - Viewbox는 가로 및 세로로 확장됩니다. 수평과 같이 한 방향으로 만 늘어날 수는 없습니다. –

+1

5 세 응답은 여전히 ​​완벽하게 작동합니다. 감사! –

1

는 또한 같은 문제에 직면하지만 난 불완전한 방법의 다른 답을 발견 그래서 내가 나중에 참조 할 수 있도록 여기를 떠나, 모든 7 년 전에 게시 된 후!

제 경우에는 DatePicker 컨트롤에 의해 표시된 달력의 크기를 조정하고 싶었습니다.

달력의 스타일을 만들기 :

<Style x:Key="styleCalendar" TargetType="{x:Type Calendar}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Calendar}"> 
       <!-- Wrapping in ViewBox will enlarge calendar of that size.--> 
       <Viewbox Height="300"> 
        <CalendarItem x:Name="PART_CalendarItem" 
           Background="{TemplateBinding Background}" 
           BorderBrush="{TemplateBinding BorderBrush}" 
           BorderThickness="{TemplateBinding BorderThickness}"/> 
       </Viewbox> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

그리고 단순히 DatePicker에서 그것을 호출

<DatePicker CalendarStyle="{StaticResource styleCalendar}"/> 

공지 사항 난 단지, 뷰 박스에 그게 전부 높이를 specificy 때문에 (내가 읽은 것을에서) ViewBox는 균일하게 늘어나므로 두 개의 치수 중 가장 작은 것을 취합니다.