silverlight日期选择器可以缩小以允许用户按年份进行选择,但由于某种原因,第一年和最后几年总是看起来已禁用。有办法防止这种情况吗?
答案 0 :(得分:2)
这是将元素的颜色和样式硬编码到其默认模板中的众多场所之一。因此,要更改这些“非活动”日历按钮的外观,您需要定义一个新模板。
首先,您需要创建controlsPrivitives:CalendarButton
样式的副本,您可以从Calendar Styles and Templates获取样式的副本。将其放在用于您的用户控件的Resources
中,甚至放在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。
如果你想要相同的日期按钮,你应该注意它们具有不同的控件CalendarDayButton
所以你需要对它的默认样式进行相同的练习。