我正在使用绑定作为Image
控件的来源。
<Image Source="{Binding ImageUri}"/>
但是这个ImageUri
可以为null,因此我想使用默认图像,占位符,例如/Assets/PlaceHolder.png
。
如何设置默认图像?谢谢。 (这是一个WP8应用程序,但不应该与WPF不同)
答案 0 :(得分:22)
您可以通过设置TargetNullValue
<Image>
<Image.Source>
<Binding Path="ImageUri" >
<Binding.TargetNullValue>
<ImageSource>/Assets/PlaceHolder.png</ImageSource>
</Binding.TargetNullValue>
</Binding>
</Image.Source>
</Image>
答案 1 :(得分:3)
您可以在图片上设置ImageFailed事件,
<Image Source="{Binding ImageUri}" ImageFailed="Image_ImageFailed"/>
并使用以下C#在其位置加载特定图像。
private void Image_ImageFailed(object sender, ExceptionRoutedEventArgs e)
{
((Image)sender).Source = new BitmapImage(new Uri("/Assets/MyDefaultImage.png", UriKind.Relative));
}
答案 2 :(得分:3)
在我看来,你只需在Image
布局中使用两个Grid
控件,一个使用本地占位符源,另一个使用远程{ {1}}。远程绑定为空时,本地映像已存在。但是,如果绑定不为null,则在呈现后它会自动覆盖本地占位符图像。
Binding
答案 3 :(得分:1)
您可以使用 ImageFailed 事件和 ChangePropertyAction 。
此代码段为我工作:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
<Image x:Name="GeologyMapsLegend" Stretch="Fill" Height="150">
<i:Interaction.Triggers>
<i:EventTrigger EventName="ImageFailed">
<ei:ChangePropertyAction PropertyName="Source" TargetName="GeologyMapsLegend">
<ei:ChangePropertyAction.Value>
<ImageSource>
/LanSysWebGIS;component/Pictures/Icon/NoImageAvailable.jpg
</ImageSource>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</Image>
答案 4 :(得分:0)
使用TargetNullValue
属性。如果我不想显示任何图像,这将非常有用。
答案 5 :(得分:0)
您可以尝试以下方法:
Aws.config.update(
credentials: Aws::Credentials.new("access_key_id", "secret_access_key"),
region: "region"
)
s3 = Aws::S3::Resource.new.bucket("bucket")
obj = s3.object('perspectives/images/3547/original/1.jpg')
obj.delete
答案 6 :(得分:0)
好的,所以我知道这有点老了,但我想我有一个最简单的 我正在寻找相同的问题,发现它实际上确实非常有效
创建一个网格和一个网格列,并向其中添加两张图片,然后将它们分配到同一列,以使它们彼此重叠,不分配z索引或仅添加默认图像,然后添加绑定的任何内容到需要从数据库加载的图像,完成了。现在,如果图像为null,则绑定源将是透明的,并且后面的默认图像将是可见的,
如果您不了解很多代码,这是最简单的方法
注意:最好添加一个较小的png图像,但在其中任何一个上都能正常工作
xaml代码
<Grid>
<Image Source="Images/cartoon-woman-Pretty.Png" Stretch="Uniform"
Height="230" Width="180"/>
<Image Stretch="Uniform" x:Name="mimg" Height="230" Width="180" />
x
/ \
|__ (BINDING IMAGE SOURCE WITH NAME)
</Grid>
C#代码
mimg.Source = new BitmapImage(new Uri(dr.GetString("Photo_path")));
答案 7 :(得分:-1)