2009-10-02 5 views
1

У меня есть подкласса ListBox с свойством зависимости , которое установлено на Storyboard. Когда выбранный элемент изменен, я хочу запустить этот Storyboard по каждому элементу в ListBox.Начните раскадровку на более чем одной цели

Как это возможно с одним экземпляром Storyboard?

ответ

1

Раскадровка может быть запущена и запущена из нескольких триггеров, и она отлично работает до тех пор, пока она настроена правильно. Если я правильно вас понимаю, вы надеетесь применить раскадровку к каждому отдельному элементу ListBoxItem. В этом случае, почему бы не создать стиль и триггеры этого стиля, запустите раскадровку.

Извините, мой псевдокод.

<Storyboard x:Key="MyEnterStoryboard"> 
    <!-- Do Enter Work --> 
</Storyboard> 

<Storyboard x:Key="MyExitStoryboard"> 
    <!-- Do Exit Work --> 
</Storyboard> 

<Style TargetType="{x:Type ListBoxItem}"> 
    <Style.Triggers> 
     <Trigger Property="SelectedItemChanging" Value="True"> 
      <Trigger.EnterActions> 
       <BeginStoryboard Storyboard="{StaticResource MyEnterStoryboard}"/> 
      </Trigger.EnterActions> 
      <Trigger.ExitActions> 
       <BeginStoryboard Storyboard="{StaticResource MyExitStoryboard}"/> 
      </Trigger.ExitActions> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

Спасибо за это, это имеет смысл. Но как это переводится в Silverlight? Насколько я понимаю, SL не поддерживает триггеры. –

+0

Извините, Ричард, видел тег WPF, а не тег silverlight. Я провел некоторое исследование и обнаружил, что вы можете использовать поведение. Кроме того, в зависимости от того, какую версию SL вы используете, вы можете использовать НЕКОТОРЫЕ триггеры. – erodewald

1

WPF Раскадровки имеют Clone method. Silverlight не имеет этого, но думал, что я опубликую его на всякий случай, если кто-то столкнется с этим сообщением, ища решение WPF.

Смежные вопросы