wpf - WPF XAML 从函数加载图像
问题描述
我有 WPF 表单,我在其中从 childdataview 创建了一个列表视图。列表视图以及其他控件将具有图像。
因此子数据视图中的数据行具有“图像名称”,该位置实际上位于单独的 zip 文件中。
我已经在winforms中很好地完成了图片的显示:
If img.newFileFlag = vbTrue Then
photoDisp.Image = Image.FromFile(img.newFileLocation)
photoDisp.SizeMode = Windows.Forms.PictureBoxSizeMode.StretchImage
Else
Dim bp_Name As String = loc
Dim strm As FileStream = New FileStream(bp_Name, FileMode.Open)
Dim archive As ZipArchive = New ZipArchive(strm, ZipArchiveMode.Update)
Dim imageStrm As Stream
For Each entry As ZipArchiveEntry In archive.Entries
If entry.Name.Contains(img.xFileName) Then
imageStrm = entry.Open()
photoDisp.Image = Image.FromStream(imageStrm)
photoDisp.SizeMode = Windows.Forms.PictureBoxSizeMode.StretchImage
Exit For
End If
Next
strm.Close()
End If
写错或介于两者之间,它有效。所以我承担了转换为 WPF 的任务并尝试做一些 MVVM。
所以如果我有一个列表视图:
<ListView Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Left" Width="300" Background="Red" ItemsSource="{Binding Path=ConnectedChildView}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="/"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
正确加载该图像的正确方法是什么?
在我的 Viewmodel 中,我可以访问 zip 文件:
Public Property BPDProp As BredpackageData
Get
Return BPD
End Get
Set(value As BredpackageData)
BPD = value
End Set
End Property
在 BredpackageData 类中:
Public Property BredPackageLocationProperty() As String
Get
Return BredPackageLocation
End Get
Set(ByVal value As String)
BredPackageLocation = value
End Set
End Property
因此,我拥有使用与我的 winform 类似的功能所需的所有数据,我可能只是将其潜入后面的代码中并使其工作,但这感觉不对。
有没有更好、更正确的方法?
我想发布更多关于我尝试过的东西,但我还没有真正尝试过任何东西。我哪儿也去不了。
谢谢
解决方案
推荐阅读
- c# - 如何使用 Itext 7-dotnet 像 Acrobat 一样标记背景?
- python - 计算列表中出现的次数
- dictionary - Dart:将字符串列表映射为字符串
- typescript - 如何在 RSocket-JS 中做一个无限的 requestStream()?当 subscription.request() 用完时会发生什么?
- python - 成功登录后,Tkinter 登录系统未打开应用程序
- amazon-web-services - 如何将 AWS RDS SQL 实例连接到 Databricks/Spark?
- ruby-on-rails - 使用表单部分值显示警报
- r - 通过 R 脚本错误将 PowerQuery 表发送到 SQL Server
- spring-webclient - 模拟 webclient 的问题
- asp.net-core - 如何在 .net 核心中使用 System.Web.UI.UserControl