표준 System.Windows.Controls.Calendar 컨트롤에서 상속되는 사용자 지정 컨트롤을 작성합니다. 코드 프로젝트에 대한이 기사를 따르고 있습니다. 또한 MSDN의이 기사 에서처럼 CalendarItem 하위 객체의 크기를 조절할 수있게하려고합니다. 바인딩을 사용하여 표준 컨트롤에서 컨트롤 템플릿을 참조하는 방법?
나는 나의 generic.xaml을에있는 내 사용자 지정 컨트롤 ResourceDictionary에로 Calendar 컨트롤의 소스 코드에서 달력, CalendarDayButton 및 CalendarItem의 스타일을 복사. 이 같은 CalendarItem 스타일 참조 3 버튼 템플릿 (이전 달, 다음 달 및 헤더 버튼) :이 바인딩은 정적 리소스를 사용하기 때문에<!-- Start: Previous button content -->
<Button x:Name="PART_PreviousButton"
Grid.Row="0" Grid.Column="0"
Template="{StaticResource PreviousButtonTemplate}"
Height="20" Width="28"
HorizontalAlignment="Left"
Focusable="False"
/>
<!-- End: Previous button content -->
<!-- Start: Header button content -->
<Button x:Name="PART_HeaderButton"
Grid.Row="0" Grid.Column="1"
Template="{StaticResource HeaderButtonTemplate}"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="Bold" FontSize="10.5"
Focusable="False"
/>
<!-- End: Header button content -->
<!-- Start: Next button content -->
<Button x:Name="PART_NextButton"
Grid.Row="0" Grid.Column="2"
Height="20" Width="28"
HorizontalAlignment="Right"
Template="{StaticResource NextButtonTemplate}"
Focusable="False"
/>
<!-- End: Next button content -->
지금, 난 내있는 ResourceDictionary에 세 개의 버튼의 스타일을 복사해야합니다 . 이 단추를 변경하지 않으려 고합니다. 따라서 ResourceDictionary에서 스타일을 사용하는 것이 피할 수 있기를 바랍니다.
안녕하세요 마크, 즉 종속성 속성을 사용하여 매우 흥미로운 기술입니다. 그러나 나는 그것이 아무것도 해결한다고 생각하지 않는다. 귀하의 방법을 사용하여, 나는 여전히 버튼에 대한 스타일/컨트롤 템플릿을 만들 필요가있다. 그들의 바인딩은 매우 다르게 수행된다. 내가 찾고있는 것은 Controls.Calendar 컨트롤에서 이미 존재하는 템플릿을 참조하는 방법입니다. 나는 뭔가 오해 할 수도 있습니다. :) – Cousken
좋아, 나는 '원래'버튼 템플릿을 언급하는 것을 얻지 못했고, 이미 다른 곳에 정의한 템플릿을 의미한다고 생각했습니다. 다음 : 아니, 당신은 이것을 할 수 없습니다. 나는 같은 것을 여러 번 시도해 왔지만 원래 템플릿의 일부를 사용하는 컨트롤 템플릿을 만들 수는 없습니다. ControlTemplates에는 'BasedOn'과 같은 것이 없습니다. – Marc
Marc에게 감사드립니다. 가능한 한 많은 코드를 재사용 할 수 있다고 믿습니다. 그래서 나는 그러한 가능성을 매우 좋아할 것입니다. – Cousken