Гиперссылка в Silverlight AccordionItem HeaderTemplate - PullRequest
2 голосов
/ 12 января 2011

Я создал шаблон HeaderTemplate для своих аккордеонов, в котором я хочу отобразить текстовый блок с одной стороны заголовка и гиперссылку с правой стороны. Дисплей работает правильно, но событие щелчка не вызывается, когда пользователь щелкает, я предполагаю, что b / c сам заголовок захватывает щелчок для расширения / сжатия.

    <layoutToolkit:Accordion>
        <layoutToolkit:AccordionItem IsSelected="True">
            <layoutToolkit:AccordionItem.HeaderTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Height="20">
                        <TextBlock Margin="0,0,700,0">Cancel Postcards</TextBlock>                                  
                          <HyperlinkButton Content="Next Call" Foreground="Blue" Click="NextCancel_Click" />
                      </StackPanel>
                  </DataTemplate>
            </layoutToolkit:AccordionItem.HeaderTemplate>
..... more code ....

Есть ли способ заставить гиперссылку реагировать на события, практически не создавая новый элемент управления?

Обновление: похоже, что заголовок устанавливает все дочерние элементы управления отключенными при раскрытии, поэтому ссылка не работает. Это сработает, когда вы разрушите этот аккордеонит. Итак, теперь вопрос в том, как предотвратить отключение гиперссылки?

1 Ответ

2 голосов
/ 15 января 2011

Привет, Чарли, я только что ответил на этот же вопрос для Epic720. Вы должны изменить заблокированное VisualState.

Интерактивные предметы в Silverlight Accordion Header

Вот LockedStates VisualStateGroup AccordionItem, который вы должны изменить. Я могу опубликовать весь стиль, если вам нужно, хотя это довольно многословно.

<VisualStateGroup x:Name="LockedStates">
    <VisualStateGroup.Transitions>
        <VisualTransition GeneratedDuration="0"/>
    </VisualStateGroup.Transitions>
    <VisualState x:Name="Locked">
        <Storyboard>
            <!--
            <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="IsEnabled" Storyboard.TargetName="ExpanderButton">
                <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
            </ObjectAnimationUsingKeyFrames>
            -->
        </Storyboard>
    </VisualState>
    <VisualState x:Name="Unlocked">
        <Storyboard>
            <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="IsEnabled" Storyboard.TargetName="ExpanderButton">
                <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>
    </VisualState>
</VisualStateGroup>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...