当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,