XAML UserControl Trigger - PullRequest
       1

XAML UserControl Trigger

1 голос
/ 01 декабря 2011

Застрял на этом довольно долгое время, не уверенный, где я иду не так. Я получаю сообщение

Triggers collection members must be of type EventTrigger.

Я думаю, что мои знания о триггерах верны, и именно для этого типа триггеров мне не нужен триггер событий.

Это моя наценка

  <UserControl.Triggers>
     <Trigger SourceName="MainGrid" Property="Grid.IsMouseOver" Value="true">
         <Setter TargetName="DeleteButton" Property="TextBlock.Foreground" Value="#FF222222" />
     </Trigger>
 </UserControl.Triggers>

Edit:

Это не исправление, но я делал это программно, пока не нашел способ решить эту проблему в XAML.

    private void MainGrid_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
    {
        DeleteButton.Foreground = new SolidColorBrush(Color.FromArgb(255, 34, 34, 34));
    }

    private void MainGrid_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
    {
        DeleteButton.Foreground = new SolidColorBrush(Color.FromArgb(255, 204, 204, 204));
    }

1 Ответ

1 голос
/ 01 декабря 2011

Поместите xaml ниже в раздел UserControl.Triggers:

<EventTrigger SourceName="MainGrid" RoutedEvent="Grid.MouseEnter">
            <BeginStoryboard>
                <Storyboard Storyboard.TargetName="DeleteButton"
                            Storyboard.TargetProperty="Foreground.Color">
                    <ColorAnimationUsingKeyFrames BeginTime="00:00:00">
                        <LinearColorKeyFrame Value="Red"
                                             KeyTime="0:0:0" />
                    </ColorAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>            
        </EventTrigger>
        <EventTrigger SourceName="MainGrid"
                      RoutedEvent="Grid.MouseLeave">
            <BeginStoryboard >
                <Storyboard Storyboard.TargetName="DeleteButton"
                            Storyboard.TargetProperty="Foreground.Color">
                    <ColorAnimationUsingKeyFrames BeginTime="00:00:00">
                        <LinearColorKeyFrame Value="Black"
                                             KeyTime="0:0:0" />
                    </ColorAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>            
        </EventTrigger>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...