动态添加脉冲边框到Silverlight控件

时间:2009-07-30 13:07:43

标签: silverlight

在数据输入表单(Silverlight 3)中,我有一个组合框,当用户更改另一个时,可以更改其选择 - 假设根据国家/地区选择重新填充状态列表。

我想用一个简单的发光光环效果突出显示这个组合框的变化 - 基本上是一个渐渐消失的边框。我只是使用控件后面的Storyboard和Rectangle创建了这个,但我确信必须有更好的方法 - 理想情况下可重用

这就是我所拥有的:

<Rectangle x:Name="canvas" Height="24" Margin="98,58,79,0" 
    VerticalAlignment="Top" Width="169" Fill="#763DE4E4" 
    Canvas.ZIndex="1" Opacity="0" RadiusX="5" RadiusY="5"/>

<controls:ChildWindow.Resources>
    <Storyboard x:Name="HighlightControl">
        <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetName="canvas" 
            Storyboard.TargetProperty="(UIElement.Opacity)" From="0" To="1" 
            AutoReverse="True" Duration="0:0:1" />
    </Storyboard>
</controls:ChildWindow.Resources>

要在多个控件上使用此效果,我目前必须重新定位矩形并重置Storyboard,或维护一大堆矩形并重新定位Storyboard。

我考虑使用边框控件并将其添加到控件中,但这会导致组合移动以适应边框 - 它需要保持静止,光环周围会发光。

更新:模糊效果似乎可以做可见效果位,这很好 - 这比并排矩形更好,所以我只是错过了可重复使用的效果+动画位。我想知道这是行为的用途吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用这种颜色鲜艳的阴影?

    <ComboBox x:Name="comboBox" Margin="248,47,272,0" VerticalAlignment="Top">
        <ComboBox.Effect>
            <DropShadowEffect BlurRadius="100" ShadowDepth="0" Color="White"/>
        </ComboBox.Effect>
    </ComboBox>

然后用故事板或视觉状态制作阴影动画?