我正在尝试在UWP中编辑日历视图的一些设计元素。
下面是日历视图的图片。
我试图关闭显示画笔效果,该效果出现在元素框本身和包围的元素框的边界处,但是失败了。
我想制作类似于“约会”应用程序日历的日历。
它有两个日历,其中两个没有显露笔刷。
我编辑了CalendarViewDayItemRevealStyle
的模板,但这没用。
以下来源是模板的原始来源。我删除了Point over状态的二传手,但未删除显示画笔。
<Style x:Key="CalendarViewDayItemRevealStyle" TargetType="CalendarViewDayItem">
<Setter Property="MinWidth" Value="40"/>
<Setter Property="MinHeight" Value="40"/>
<Setter Property="Margin" Value="1"/>
<Setter Property="Padding" Value="0, 0, 0, 4"/>
<Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}"/>
<Setter Property="FocusVisualMargin" Value="-2"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CalendarViewDayItem">
<Grid x:Name="Root" Width="0">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Target="Root.(RevealBrush.State)" Value="PointOver"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPointerOver}" />
<Setter Target="ContentPresenter.BorderBrush" Value="Transparent"/>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundPointerOver}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Pressed">
<VisualState.Setters>
<Setter Target="Root.(RevealBrush.State)" Value="Pressed"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPressed}" />
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBackgroundPressed}" />
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundPressed}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="CalendarViewCalendarViewDayItemStyle1"
BasedOn="{StaticResource CalendarViewDayItemRevealStyle}"
TargetType="CalendarViewDayItem"/>
如何去除显露画笔效果?
答案 0 :(得分:1)
如果您在generic.xaml
文件中检查CalendarView的默认样式,则会看到它为CalendarItem
指定了两个额外的显示画笔。
<Setter Property="CalendarItemForeground" Value="{ThemeResource CalendarViewCalendarItemForeground}" />
<Setter Property="CalendarItemBackground" Value="{ThemeResource CalendarViewCalendarItemRevealBackground}" />
您可以按以下方式进行更改:
<CalendarView CalendarItemBackground="{ThemeResource SystemControlBackgroundAltHighBrush}" CalendarItemBorderBrush="Gray"></CalendarView>
然后,显示效果将消失。
出于设计目的,可从Windows SDK安装目录的
\(Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\xxxx\Generic
文件夹中获取generic.xaml。
答案 1 :(得分:0)
最好将CalendarViewCalendarItemBackground用作ItemBackground。我没看到 CalendarViewCalendarItemBorderBrush,如果我们将ItemBorderBrush设置为null,也许可以使用。
<CalendarView CalendarItemBackground="{ThemeResource CalendarViewCalendarItemBackground}" CalendarItemBorderBrush="{x:Null}"></CalendarView>