WPF Image数据模板帮定问题。
<DataTemplate DataType="{x:Type d:TestUser}"><Border BorderBrush="#FF595959" x:Name="back">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Margin="5" BorderThickness="3" Grid.Column="0" CornerRadius="5" Height="60" BorderBrush="BlanchedAlmond">
<Image Margin="0.5" Stretch="Fill" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Source="{Binding UserFace}"/>
</Border>
<StackPanel Grid.Column="1" Orientation="Vertical">
<TextBlock Margin="5" Text="{Binding UserName}"></TextBlock>
<TextBlock x:Name="message" Margin="5" TextWrapping="Wrap" MaxHeight="60" MaxWidth="{Binding ElementName=back,Path=Width}"
TextTrimming="CharacterEllipsis" Text="{Binding UserMessage}"></TextBlock>
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5">注册时间 : </TextBlock>
<TextBlock Margin="5" Text="{Binding UserLogTime}"></TextBlock>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
TestUser.UserFace 是System.Windows.Media.Imaging.BitmapImage类型。
从数据库读取二进制文件.
数据绑定的时候,好像不能直接使用BitmapImage类型和Image.Source属性绑定。
本来想用继承TypeConvert来搞。
后面发现还是存在绑定问题。
求大侠指点。
--------------------编程问答-------------------- Source需要指定一个URI,
如果要用BitmapImage绑定,则
Source = new BitmapImage(new Uri("face.jpg", UriKind.RelativeOrAbsolute));
你需要将二进制的图片先存到本地,然后通过路径去访问
Xaml里其实一回事,关键是这张图片要能通过URI的形式获取到 --------------------编程问答-------------------- BitmapImage bitmapImage;
bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = System.IO.File.OpenRead(@"E:\2.jpg");
bitmapImage.EndInit();
image.Source = bitmapImage;
--------------------编程问答--------------------
有点纳闷了。
是二进制文件从数据库读取出来的。
不是路径。 --------------------编程问答-------------------- 我现在已经拥有了BitmapImage.
这是从数据库读取的二进制转换的。(我单独测试转成后的BitmapImage可以显示图片).
所以,现在绑定的并不是路劲.
补充:.NET技术 , C#