Image.FromFile没有加载到设计时间视图c#.net

时间:2015-12-01 12:12:58

标签: c# image xaml

我目前正在尝试使用以下代码在我的Xaml设计时间中显示图像:

的Xaml:

<Canvas Grid.ColumnSpan="2" Margin="0,0,0,0">
    <Image Canvas.ZIndex="1" Source="{Binding Coupon.OverlayImage}"  Margin="0,-21,-76,108" Stretch="Fill" x:Name="PrintImageContextMenu" />
</Canvas>

C#设计时间:

Coupon.OverlayImage = Image.FromFile(@"C:\Temp\Images\TestImage.png");

VB中的OverlayImage的原始属性(旧版代码):

private _overlayImage as Image

Public Property OverlayImage As Image
    Get
        Return _overlayImage
    End Get
    Set
        _overlayImage = value
        NotifyPropertyChanged("OverlayImage")
    End Set
End Property

在第一次观看时,我看不到任何错误,但即使在运行时也没有显示。任何想法都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以使用图片Fallback值来设置默认图片。这是一个简单的示例。

    <Window.Resources>
       <BitmapImage x:Key="ImageSource" UriSource="C:\Temp\Images\TestImage.png"/>
    </Window.Resources>
<Grid>
    <Image
    HorizontalAlignment="Left"
    Source="{Binding SourceImage,FallbackValue={StaticResource ImageSource}}"/>
</Grid>

答案 1 :(得分:0)

您使用Image类的所有地方,我认为您使用System.Drawing.Image,因为WPF图像控件没有FromFile()方法。您不能将其用作WPF图像控件的源。您必须尝试使用​​IValueConverter将Image转换为BitmapSource / ImageSource。

答案 2 :(得分:0)

试试这个,

var uri = new Uri(Coupon.OverlayImage);
var bitmap = new BitmapImage(uri);
ImageName.Source = bitmap;