Добавить пользовательское всплывающее окно для наведения мыши на Datepicker - PullRequest
1 голос
/ 09 июля 2011

Я добавляю триггер в пользовательский Datepicker для запуска всплывающего текстового блока.

Однако, когда я запускаю код, я получаю необработанное исключение nullreference.

, если я удаляю триггер,все работает нормально.

<Grid.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="Popup_PrevButton" Property="IsOpen" Value="True" />
        <Setter TargetName="Popup_NextButton" Property="IsOpen" Value="True" />
    </Trigger>
    <Trigger Property="IsMouseOver" Value="False">
        <Setter TargetName="Popup_PrevButton" Property="IsOpen" Value="False" />
        <Setter TargetName="Popup_NextButton" Property="IsOpen" Value="False" />
    </Trigger>
</Grid.Triggers>

Я пытался поместить триггер в PART_Button и ControlTemplate, но ничего не работает.

Всплывающий код помещается сразу после PART_Popup и выглядит следующим образом:

<Popup x:Name="Popup_PrevButton"
       PlacementTarget="{Binding ElementName=PART_Button}"
       IsOpen="False"
       Placement="Left" 
       StaysOpen="False"
       AllowsTransparency="True" 
       PopupAnimation="Fade"
       Focusable="True">
    <StackPanel>
       <Border Background="LightYellow">
             <TextBlock>Show Custom Rext</TextBlock>
       </Border>
    </StackPanel>
</Popup>

что дает ошибку?

1 Ответ

1 голос
/ 09 июля 2011

Триггеры элемента поддерживают только EventTrigger, поэтому вы не можете использовать триггеры свойств (Trigger). Смотри FrameworkElement.Triggers Недвижимость .

<Grid.Triggers>
    <EventTrigger RoutedEvent="UIElement.MouseEnter">
        <BeginStoryboard>
            <Storyboard>
                <BooleanAnimationUsingKeyFrames 
                    Storyboard.TargetName="Popup_PrevButton" 
                    Storyboard.TargetProperty="IsOpen">

                    <DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/>
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Grid.Triggers>
...