您的位置:首页 > Web前端 > CSS

wpf 中关于Image中样式Style的一点总结

2013-12-23 17:33 295 查看
第一种写法:

(1):定义样式

<Style x:Key="imgStyle" TargetType="Image"> : <!-- TargetType="Image":表示当前的样式作用到Image对象上-->
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Inactive}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Active}"/>
</Trigger>
<DataTrigger Binding="{Binding Path=IsPendingAlarmChecked}" Value="True">
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Active}"/>
</DataTrigger>
</Style.Triggers>
</Style>

2:引用样式

<Image x:Name="img_Red" Margin="20,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Stretch="None" ToolTip="未处理" Style={ StaticResource ResourceKey=imgStyle}/>

第二种写法:

<Image x:Name="img_Red" Margin="20,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Stretch="None" ToolTip="未处理" Cursor="Hand">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Inactive}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Active}"/>
</Trigger>
<DataTrigger Binding="{Binding Path=IsPendingAlarmChecked}" Value="True">
<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Active}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>

说明如下:

Source的属性值应该为“ImageSource 或 ImageSource的派生子类的实例”

即Value = 应该为“ImageSource 或 ImageSource的派生子类的实例”

Value="{StaticResource ResourceKey=RedLamp_Active}":把由“RedLamp_Active”关键字所代表的“BitmapImage”实例赋值给Value

<Setter Property="Source" Value="{StaticResource ResourceKey=RedLamp_Active}"/>

Setter:设置器
Property:用来指定“某一个”属性
Value:用来设置“某个”属性的值

{StaticResource ResourceKey=RedLamp_Inactive} : 这个整体表示一个key是“RedLamp_Inactive”的静态资源,在这里,该静态资源是一个BitMapImage实例(该实例可能来自本页面的“Resources”,也可能来自外部的“资源字典”

StaticResource:静态资源只从资源集合中一次获取资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: