Estoy intentando editar algunos elementos de diseño de la vista de calendario en UWP.
A continuación se muestra una imagen de la vista de calendario.

enter image description here

Y he intentado desactivar el efecto de pincel revelador que aparece en el borde del cuadro del elemento y el cuadro del elemento rodeado, pero falla.

Quiero hacer un calendario que se parezca al calendario de la aplicación de citas.
Tiene dos calendarios y dos de ellos no tienen pincel revelador. ingrese la descripción de la imagen aquí Edité la plantilla de CalendarViewDayItemRevealStyle, pero no funciona.

Agregada

La siguiente fuente es la fuente original de la plantilla. Eliminé el setter del estado Point over, pero el pincel revelador no se elimina.

 <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"/>

¿Cómo puedo eliminar el efecto de pincel revelador?

1
Jeong Yo Han 17 oct. 2018 a las 04:31

2 respuestas

La mejor respuesta

Si marca el estilo predeterminado para CalendarView en el archivo generic.xaml, verá que ha especificado dos pinceles de revelación adicionales para CalendarItem.

<Setter Property="CalendarItemForeground" Value="{ThemeResource CalendarViewCalendarItemForeground}" />
<Setter Property="CalendarItemBackground" Value="{ThemeResource CalendarViewCalendarItemRevealBackground}" />

Puede cambiarlo de la siguiente manera:

<CalendarView CalendarItemBackground="{ThemeResource SystemControlBackgroundAltHighBrush}"  CalendarItemBorderBrush="Gray"></CalendarView>

Entonces, el efecto de revelación desaparecerá.

Para fines de diseño, generic.xaml está disponible en la carpeta \(Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\xxxx\Generic de una instalación de Windows SDK.

1
Xavier Xie 18 oct. 2018 a las 08:27

Es mejor usar CalendarViewCalendarItemBackground como ItemBackground. No vi CalendarViewCalendarItemBorderBrush, tal vez funcione si establecemos ItemBorderBrush en nulo.

<CalendarView CalendarItemBackground="{ThemeResource CalendarViewCalendarItemBackground}"  CalendarItemBorderBrush="{x:Null}"></CalendarView>
0
Canhua Li 27 nov. 2018 a las 06:22