2011-02-10 4 views
1

Привет им пытаются сделать что-то вроде этогоПомогите мне установить триггер события для элементов управления типа Expander!

allrooms = remote.GetAllRooms(); 
     for (int a = 0; a < allrooms.Count; a++) { 
      Expander ex = new Expander(); 
      ex.Expanded += expander1_Expanded; 
      ex.Width = 254; 
      ex.Name = ("expander" + a); 
      ex.VerticalAlignment = System.Windows.VerticalAlignment.Stretch; 
      ex.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; 
      ex.Header = allrooms[a].nome; 
      WrapPanel panel = new WrapPanel(); 
      panel.Opacity = 1; 
      panel.Width = 254; 
      for (int b = 0; b < allusers.Count; b++) { 
       System.Windows.Controls.Label lbl = new System.Windows.Controls.Label(); 
       lbl.Content = allusers[b].nick; 
       lbl.Width = 127; 
       panel.Children.Add(lbl); 
      } 
      ex.Content = panel; 
      Canvas.SetTop(ex, (30 * a)); 
      canvasleft.Children.Add(ex); 
     } 
     myTimer.Stop(); 

и теперь моя цель заключается в добавлении этого триггера событие, что Расширители создан в XAML или C#.

<Canvas.Triggers> 
     <EventTrigger RoutedEvent="Expander.Expanded" SourceName="expander"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="listBox" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </Canvas.Triggers> 

Нечто подобное, но что есть ошибки и то, что мне нужно что-то вроде x:Type Expander для всех созданных расширителей в полотне.

Может кто-нибудь мне помочь?

ответ

1

Try что-то вроде:

<Canvas.Resources> 
    <Style TargetType="Expander"> 
     <Style.Triggers> 
     <EventTrigger RoutedEvent="Expander.Expanded"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="listBox" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
     </Style.Triggers> 
    </Style> 
</Canvas.Resources> 

Если поместить в ресурсах стиль должен быть применен ко всем Expanders из-за TargetType.

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