WPF Image控件如何根据数据状态绑定不同的图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Image控件如何根据数据状态绑定不同的图片相关的知识,希望对你有一定的参考价值。
参考技术A 直接设置Image的Source就行了追问直接设置 Source只有一个地址啊,要如何在不同数据之间切换不同的图片?小白第一次用,大神能解释的详细点吗?
追答你是要加载项目中的图片资源,还是从外部读取一张图片显示出来?
追问for example:
List有四列,第一列”状态“由图片显示,从数据库读取10条数据
7条状态为已读,标记为“图片一”
3条状态为未读,标记为“图片二”
哦~ 如果仅仅是这种状态显示图标的话(一般就两三个状态的), 你创建多个对象,分别显示各个图标, 然后根据状态来设置他Visibility属性就行了, 这样最快
如果是复杂一些的, 比如人员数据中显示这个人员的头像, 这样的就需要使用设置Source的方法了, 有两种, 一种是使用读取到的二进制来显示, 另一种是使用程序中的图片资源
WPF中一个控件绑定另一个控件的属性
原文:WPF中一个控件绑定另一个控件的属性如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应:
绑定的时候通过ElementName来指定控件
<Grid Margin="50,130">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<Button Content="asdfasdfadsfa" Background="Aquamarine">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="bd" BorderBrush="Black" Background="{TemplateBinding Background}" BorderThickness="1" CornerRadius="6,0,0,6" >
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="{TemplateBinding Content}"/>
</Border>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding ElementName=btn2,Path=Visibility}" Value="Collapsed">
<Setter TargetName="bd" Property="CornerRadius" Value="6,6,6,6"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
<Button x:Name="btn2" Grid.Column="2" Command="{Binding MainCommand}" Background="Beige">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="Black" Background="{TemplateBinding Background}" BorderThickness="0,1,1,1" CornerRadius="0,6,6,0" >
<Path Data="M 0,0 L 20,0 L 10,10 Z" Fill="Black" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Grid>
以上是关于WPF Image控件如何根据数据状态绑定不同的图片的主要内容,如果未能解决你的问题,请参考以下文章