使背景颜色动态变亮

时间:2013-09-12 14:10:44

标签: wpf

我有一个带有wrappanel的stackpanel。

当用户将鼠标悬停在wrappanel上时,我希望背景比当前背景稍微亮一点,因此用户可以清楚地点击它。

背景由我的viewmodel绑定,可以更改。

我使用转换器将枚举转换为某种颜色。

<StackPanel x:Name="UserCallAlarmPanel" >
    <StackPanel.Resources>
         <Style x:Key="AlarmStyle" TargetType="{x:Type WrapPanel}">
             <Setter Property="Background" Value="Transparent"/>
             <Style.Triggers>
                 <DataTrigger Binding="{Binding IsMouseOver, ElementName=AlarmPanel}" Value="True" >
                     <Setter Property="Background" Value="{Binding CallStatus, Converter={StaticResource CallStatusBackgroundConverter}}"/>
                     <Setter Property="Opacity" Value="20"/>
                 </DataTrigger>
            </Style.Triggers>
        </Style>
    </StackPanel.Resources>

    <WrapPanel Name="AlarmPanel" Height="25" MouseLeftButtonDown="AlarmPanel_MouseLeftButtonDown" Style="{StaticResource AlarmStyle}">
        <Viewbox> 
            <ContentControl Content="{DynamicResource alarm_icon}"/>
        </Viewbox
    </WrapPanel>
</StackPanel>

我尝试更改为不透明度,但这不起作用。

1 个答案:

答案 0 :(得分:3)

Opacity的有效值介于0(完全透明)和1(完全不透明)之间。如果您想要20%的不透明度,则需要使用0.2作为值。