WPF Flash A Border 但不是 Children

WPF Flash A Border But not the Children

关于如何闪烁边框但不闪烁内部 children 的任何想法?

我可以像这样闪烁边框:

<UserControl.Resources>
    <Storyboard x:Key="valueFlasher" RepeatBehavior="Forever">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="outline">
            <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.2"/>
            <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</UserControl.Resources>

<Border BorderBrush="Black" BorderThickness="3" CornerRadius="7" x:Name="outline">
   <!--children--> 
</Border>

但这会改变嵌套在其中的所有内容的不透明度。

我在想这样的事情:

<Border BorderThickness="3" CornerRadius="7">
    <Border.BorderBrush>
        <SolidColorBrush Color="Black" x:Name="outline"/>
    </Border.BorderBrush>
    <!--children-->
</Border>

不过好像也没用。也许我的故事板找不到 'outline' 因为它是嵌套的?

提前致谢!

属性 路径 (UIElement.Opacity) 对 SolidColorBrush 无效,因为它不是 UIElement。


而是使用 BorderBrush.Opacity

<Storyboard x:Key="valueFlasher" RepeatBehavior="Forever">
    <DoubleAnimationUsingKeyFrames
        Storyboard.TargetProperty="BorderBrush.Opacity" 
        Storyboard.TargetName="outline">

        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.2"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

像这样的边框:

<Border x:Name="outline" BorderThickness="3" CornerRadius="7">
    <Border.BorderBrush>
        <SolidColorBrush Color="Black"/>
    </Border.BorderBrush>
    <!--children-->
</Border>

或者只是 Opacity

<Storyboard x:Key="valueFlasher" RepeatBehavior="Forever">
    <DoubleAnimationUsingKeyFrames
        Storyboard.TargetProperty="Opacity" 
        Storyboard.TargetName="outline">

        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.2"/>
        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

在 SolidColorBrush 上设置 x:Name

<Border BorderThickness="3" CornerRadius="7">
    <Border.BorderBrush>
        <SolidColorBrush x:Name="outline" Color="Black"/>
    </Border.BorderBrush>
    <!--children-->
</Border>