怎样使按钮的Bitmapeffect的GlowColor和按钮的背景色保持一致?
问:
问个问题哈
代码
<Button Background="Blue" Width="100" Height="50" Grid.Row="2" >
<Button.BitmapEffect>
<OuterGlowBitmapEffect Opacity="0.7" GlowSize="5" GlowColor="{Binding Path=(Button.Background).(SolidColorBrush.Color)}"/>
</Button.BitmapEffect>
<Button.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard>
<Storyboard TargetProperty="(Button.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)">
<DoubleAnimation To="50" Duration="0:0:1" AutoReverse="False" FillBehavior="Stop"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<Button.BitmapEffect>
<OuterGlowBitmapEffect Opacity="0.7" GlowSize="5" GlowColor="{Binding Path=(Button.Background).(SolidColorBrush.Color)}"/>
</Button.BitmapEffect>
<Button.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard>
<Storyboard TargetProperty="(Button.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)">
<DoubleAnimation To="50" Duration="0:0:1" AutoReverse="False" FillBehavior="Stop"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
我想让GlowColor和Button的Background那里配置同样的颜色
但是这样做不对 不知道该怎么弄
问题出在 绑定上。首先给Button起个名字比如叫做btn 然后在绑定的时候使用ElementName关键字 代码如下所示:
代码
<Button x:Name="btn" Background="Blue" Width="100" Height="50" Grid.Row="2" >
<Button.BitmapEffect>
<OuterGlowBitmapEffect x:Name="bitmapeffect" Opacity="0.7" GlowSize="5" GlowColor="{Binding ElementName=btn, Path=(Button.Background).(SolidColorBrush.Color)}"/>
</Button.BitmapEffect>
<Button.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard>
<Storyboard TargetProperty="(Button.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)">
<DoubleAnimation To="50" Duration="0:0:1" AutoReverse="False" FillBehavior="Stop"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<Button.BitmapEffect>
<OuterGlowBitmapEffect x:Name="bitmapeffect" Opacity="0.7" GlowSize="5" GlowColor="{Binding ElementName=btn, Path=(Button.Background).(SolidColorBrush.Color)}"/>
</Button.BitmapEffect>
<Button.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard>
<Storyboard TargetProperty="(Button.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)">
<DoubleAnimation To="50" Duration="0:0:1" AutoReverse="False" FillBehavior="Stop"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
这样就是蓝色 顺便说一句 BitmapEffect其实是非常低效的 他不会利用硬件加速。因此并不建议多用。还有就是这位了仁兄 绑定功底还是非常深厚的。这么一长串都写出来了实在是佩服