Помогите мне поставить триггер события для элементов управления типа Expander! - PullRequest
1 голос
/ 10 февраля 2011

Здравствуйте, я пытаюсь сделать что-то вроде этого

  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 Ответ

1 голос
/ 10 февраля 2011

Попробуйте что-то вроде:

<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.

...