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:静态资源只从资源集合中一次获取资源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器