我正在尝试在.net 4.0 DatePicker日历中添加一个按钮,我已经有了按钮,但无法弄清楚如何让它访问日历。我正在使用的指南通过在_Click方法中使用this引用来完成它,但当我这样做时,“this”指的是按钮而不是日历。所以我的想法是使用GetParent,然后使用GetChild来获取对日历的引用。但GetParent不适用于'this'。有什么想法吗?
由于
<Style x:Key="DatePickerCalendarStyle" TargetType="{x:Type Calendar}" BasedOn="{StaticResource {x:Type Calendar}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<StackPanel Orientation="Vertical">
<StackPanel x:Name="PART_Root" HorizontalAlignment="Center">
<CalendarItem x:Name="PART_CalendarItem"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Style="{TemplateBinding CalendarItemStyle}" />
<Button x:Name="PART_TodayButton"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="10,0,10,2"
Content="Today"
Click="PART_TodayButton_Click"/>
答案 0 :(得分:0)
查看VisualTreeHelper Class,特别是GetParent
方法
由于日历是您按钮的父级,因此您无需再次登录树,然后再次按下,因此不应使用GetChild
答案 1 :(得分:0)
在你的点击处理程序的参数中你有'sender'(对象):这是你希望找到带有VisualTreeHelper类的父类的发件人。