当我尝试将 DataBinding 与图像一起用作边框的背景时,我遇到了 WPF 问题。我以这种方式渲染图像没有问题:
<Image Name="imgPlayer" Width="100" Height="100"
Source="{Binding Converter={StaticResource ImageConverter}, Path=Image}"
/>
我的 DefaultImageConverter 只是检查图像是否为空,如果是,则返回一个“我们没有图像”BitmapImage,它是项目中的嵌入式资源。这也很好用。
我不确定它是否重要,但图像实际上来自 MS SQL Server CE Image 字段,并且相应的 Entity 字段实际上是一个字节数组。但是,它工作得很好。
然后,我决定尝试在图像周围放置一个简单的圆形边框,以使其看起来更好。我的第一次尝试是使用带有边框和图像的画布,但方形图像绘制在边框的圆形部分上。经过一番查看,我发现您实际上可以将图像绘制为边框的背景。这就是我想出的:
<Border Height="100" Width="100" BorderBrush="Gray" CornerRadius="10" BorderThickness="5">
<Border.Background>
<ImageBrush>
<ImageBrush.ImageSource>
<BitmapImage StreamSource="{Binding Converter={StaticResource ImageConverter}, Path=Image}"/>
</ImageBrush.ImageSource>
</ImageBrush>
</Border.Background>
</Border>
我的问题是我收到一个 XML 解析错误,告诉我必须设置 UriSource 或 StreamSource。我正在设置 StreamSource。我也尝试过设置 UriSource(发现了一个类似但相反的问题,遇到了同样的问题,但使用了 UriSource),我遇到了同样的问题。
它会运行,但在尝试引用此图像时会失败。
真的,我只想在图像周围放置一个圆形边框,而不会在角落上绘制图像。如果有完全不同的方法可以做到这一点,那也可以。
希望这是有道理的!
问候,迈克