防止Silverlight日期选择器年数看起来已禁用

防止Silverlight日期选择器年数看起来已禁用,silverlight,silverlight-4.0,datepicker,Silverlight,Silverlight 4.0,Datepicker,silverlight datepicker可以缩小以允许用户按年份进行选择,但由于某些原因,第一年和最后一年看起来总是禁用的。有没有办法防止这种情况 这是将元素的颜色和样式硬编码到默认模板中的许多地方之一。因此,要更改这些“非活动”日历按钮的外观,您需要定义一个新模板 首先,您需要创建controlsPrivitives:CalendarButton样式的副本,您可以从中获取样式的副本。将其放在用户控件的参考资料中,甚至放在App.Xaml中。您需要复制MSDN主题中也列出的名称空间别名 现在

silverlight datepicker可以缩小以允许用户按年份进行选择,但由于某些原因,第一年和最后一年看起来总是禁用的。有没有办法防止这种情况


这是将元素的颜色和样式硬编码到默认模板中的许多地方之一。因此,要更改这些“非活动”日历按钮的外观,您需要定义一个新模板

首先,您需要创建
controlsPrivitives:CalendarButton
样式的副本,您可以从中获取样式的副本。将其放在用户控件的
参考资料中,甚至放在App.Xaml中。您需要复制MSDN主题中也列出的名称空间别名

现在,您可以修改日历按钮的隐式样式。您将注意到xaml中的模板具有以下可视状态组:-

                           <vsm:VisualStateGroup x:Name="ActiveStates">
                                <vsm:VisualStateGroup.Transitions>
                                    <vsm:VisualTransition GeneratedDuration="0" />
                                </vsm:VisualStateGroup.Transitions>
                                <vsm:VisualState x:Name="Active" />
                                <vsm:VisualState x:Name="Inactive">
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Content" Storyboard.TargetProperty="(ContentControl.Foreground).(SolidColorBrush.Color)" To="#FF777777" Duration="0" />
                                    </Storyboard>
                                </vsm:VisualState>
                            </vsm:VisualStateGroup>

超出范围的年份被设置为非活动状态,因此具有您在上述非活动状态中看到的硬编码灰色。因此,根据您的喜好调整这个xaml

如果您想为day按钮使用相同的控件,请注意,这些按钮具有不同的控件
CalendarDayButton
,因此您需要对其默认样式执行相同的操作