Создание собственного календаря в wpf и месяц больше не переключается автоматически при выборе дня в следующем или предыдущем месяце - PullRequest
0 голосов
/ 12 октября 2018

Я оформляю элемент управления Calendar в WPF.В настоящее время у меня есть созданный стиль, но теперь он больше не переключается автоматически на следующий месяц, когда я выбираю дату следующего месяца в представлении текущего месяца.Например.В представлении за октябрь выберите 1 ноября, он останется в октябре, но я бы хотел автоматически переключиться на ноябрь, как это делает календарь по умолчанию.Я не уверен, почему он потерял эту функциональность.

Еще один обходной путь - отключение или предотвращение нажатия на НЕАКТИВНЫЕ дни месяца.Я пробовал это

<Rectangle x:Name="InactiveBackground"
           Opacity="1"
           IsHitTestVisible="False"
           Visibility="Hidden"
           RadiusX="1"
           RadiusY="1">
    <Rectangle.Stroke>
        <SolidColorBrush Color="Transparent" />
    </Rectangle.Stroke>
    <Rectangle.Fill>
        <SolidColorBrush Color="Transparent" />
    </Rectangle.Fill>
</Rectangle>

затем

<VisualState Name="Inactive">
    <Storyboard>
        <ColorAnimation Duration="0"
          Storyboard.TargetName="NormalText"
          Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" To="Transparent" />
        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="InactiveBackground"
              Storyboard.TargetProperty="Visibility"
              Duration="0">
            <DiscreteObjectKeyFrame KeyTime="0">
                <DiscreteObjectKeyFrame.Value>
                    <Visibility>Visible</Visibility>
                </DiscreteObjectKeyFrame.Value>
            </DiscreteObjectKeyFrame>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

Но ishittestvisible = false, похоже, не работает, так как я все еще могу выбрать неактивные даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...