Эффект триггера при наведении курсора мыши WPF для дочерних элементов управления

Допустим, у меня есть этот фрагмент кода:

<Window>
    <Window.Resources>
        <Color x:Key="MyColor"
               A="255"
               R="152"
               G="152"
               B="152" />
        <DropShadowEffect x:Key="MyEffect" 
                          ShadowDepth="0"
                          Color="{StaticResource MyColor}"
                          BlurRadius="10" />
        <Style x:Key="MyGridStyle"
               TargetType="{x:Type Grid}">
            <Setter Property="Height"
                    Value="200" />
            <Setter Property="Width"
                    Value="200" />
            <Style.Resources>
                <Style TargetType="{x:Type TextBlock}">
                    <Setter Property="Width"
                            Value="100" />
                </Style>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Height"
                            Value="100" />
                    <Setter Property="Width"
                            Value="100" />
                </Style>
            </Style.Resources>
            <Style.Triggers>
                <Trigger Property="IsMouseOver"
                         Value="true">
                    <!-- How do I apply my effect when this grid is hovered over to Image and TextBox, but not the grid itself? -->
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid Style="{StaticResource MyGridStyle}">
        <Grid.RowDefinitions>
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Image Grid.Row="0"
               Grid.Column="0"
               Source="image.png" />
        <TextBlock Grid.Row="0"
                   Grid.Column="0"
                   Text="Hover Over Me" />
    </Grid>
</Window>

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

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

Я могу применить триггер непосредственно к текстовому блоку и / или изображению , но тогда эффект проявляется только для каждого элемента в отдельности. Мне нужно, чтобы эффект проявился для любого TextBlock и / или Image в сетке, независимо от того, над каким внутренним дочерним элементом я наведен.

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

8
задан Ristogod 5 October 2011 в 19:46
поделиться