Wpf 通过绑定显示保存的Xaml画布
我正在将svg图像保存为数据库中的xaml字符串。接下来,我将这个xaml字符串记录在一个类的属性(MyClass.XamlString)中 在我的表单上有一个画布,我希望MyClass.XamlString是画布的子级 这就是我所拥有的:Wpf 通过绑定显示保存的Xaml画布,wpf,vb.net,xaml,svg,binding,Wpf,Vb.net,Xaml,Svg,Binding,我正在将svg图像保存为数据库中的xaml字符串。接下来,我将这个xaml字符串记录在一个类的属性(MyClass.XamlString)中 在我的表单上有一个画布,我希望MyClass.XamlString是画布的子级 这就是我所拥有的: Dim MyBinding As New Binding("XamlString") MyBinding.Source = MyClass MyBinding.Converter = New clsXamlTo
Dim MyBinding As New Binding("XamlString")
MyBinding.Source = MyClass
MyBinding.Converter = New clsXamlToCanvasConverter
CanvasOnForm.SetBinding(ContentPresenter.ContentProperty, MyBinding)
及
Friend类clsXamlToCanvasConverter
实现IValueConverter
公共函数Convert(值作为对象,targetType作为类型,参数作为对象,区域性作为全球化.CultureInfo)作为对象实现IValueConverter.Convert
Dim ConvertedCanvas As Canvas=System.Windows.Markup.XamlReader.Parse(“&value&”)
返回转换画布
端函数
作为对象的公共函数ConvertBack(值作为对象,targetType作为类型,参数作为对象,区域性作为全球化.CultureInfo)实现了IValueConverter.ConvertBack
抛出新的NotImplementedException
端函数
末级
在调试过程中,我看到clsXamlToCanvasConverter创建了一个画布,其中包含来自xaml字符串的子项,虽然您可能会说额外的画布是多余的,但它工作正常
我猜这就是我出错的地方:CanvasInform.SetBinding(ContentPresenter.ContentProperty,MyBinding)
代码运行正常,问题是我没有看到显示的图像
我在这方面搜索了很多,也看过这篇文章,但显然这对我没有帮助
有什么想法吗?如果
canvasconform
实际上是一个画布,绑定将无法工作,因为画布没有内容属性。您可以改用ContentControl或ContentPresenter。谢谢,这就解决了问题。如果您输入答案,我可以将其标记为正确答案。
Friend Class clsXamlToCanvasConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
Dim ConvertedCanvas As Canvas = System.Windows.Markup.XamlReader.Parse("<Canvas xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">" & value & "</Canvas>")
Return ConvertedCanvas
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotImplementedException
End Function
End Class