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

 第一种写法:

(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:静态资源只从资源集合中一次获取资源

posted @ 2013-12-23 17:33  长白山  阅读(1926)  评论(0编辑  收藏  举报