在 Excel 加载项 (VB) 的用户控件中动态加载 XAML
Dinamically load XAML in UserControl for Excel Add In (VB)
我正在开发一个 Excel 加载项,我打算在其中将 XAML canvas 动态加载到 WPF UserControl。
下面的代码在完整的 WPF 模板中运行良好...
Imports Microsoft.Win32
Imports System.IO
Class MainWindow
Private Sub btnLoadXAML_Click(sender As Object, e As RoutedEventArgs)
Try
Dim FlDialog As OpenFileDialog = New OpenFileDialog()
FlDialog.ShowDialog()
Dim lFlName As String = FlDialog.FileName
'load selected file
Dim fs As FileStream = New FileStream(lFlName, FileMode.Open)
Dim gridToLoad As New Canvas
With gridToLoad
.Height = 300
.Width = 300
End With
gridToLoad = System.Windows.Markup.XamlReader.Load(fs)
grdLoadXAML.Children.Add(gridToLoad)
fs.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
...但是当我在 Excel Add In 模板上使用它时,我无法通过 VB 代码引用 XAML 对象,例如:
Dim gridToLoad As New Canvas
我的意思是 "New Canvas" 似乎没有 "imported" 这种模板。我找不到要引用哪个库来完成这项工作。
提前致谢。
对不起,
在我尝试构建项目几分钟后,Visual Basic 本身就给了我答案!
只需为 System.Xaml 添加参考(愚蠢!)。
不管怎么说,还是要谢谢你!! :)
最好的。
我正在开发一个 Excel 加载项,我打算在其中将 XAML canvas 动态加载到 WPF UserControl。 下面的代码在完整的 WPF 模板中运行良好...
Imports Microsoft.Win32
Imports System.IO
Class MainWindow
Private Sub btnLoadXAML_Click(sender As Object, e As RoutedEventArgs)
Try
Dim FlDialog As OpenFileDialog = New OpenFileDialog()
FlDialog.ShowDialog()
Dim lFlName As String = FlDialog.FileName
'load selected file
Dim fs As FileStream = New FileStream(lFlName, FileMode.Open)
Dim gridToLoad As New Canvas
With gridToLoad
.Height = 300
.Width = 300
End With
gridToLoad = System.Windows.Markup.XamlReader.Load(fs)
grdLoadXAML.Children.Add(gridToLoad)
fs.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
...但是当我在 Excel Add In 模板上使用它时,我无法通过 VB 代码引用 XAML 对象,例如:
Dim gridToLoad As New Canvas
我的意思是 "New Canvas" 似乎没有 "imported" 这种模板。我找不到要引用哪个库来完成这项工作。
提前致谢。
对不起, 在我尝试构建项目几分钟后,Visual Basic 本身就给了我答案! 只需为 System.Xaml 添加参考(愚蠢!)。 不管怎么说,还是要谢谢你!! :) 最好的。