作为项目引用调用时,WPF框架Uri不起作用
我在VS2010的WPF项目中有一个简单的框架。Uri在codebehind中通过以下方式调用:作为项目引用调用时,WPF框架Uri不起作用,wpf,url,uri,frame,relative-path,Wpf,Url,Uri,Frame,Relative Path,我在VS2010的WPF项目中有一个简单的框架。Uri在codebehind中通过以下方式调用: Dim U As New Uri("Pages/PageTranslate.xaml", UriKind.Relative) 现在我在另一个项目中使用此项目作为参考。我使用如下实例调用FrameProject New FrameProjectInstance1 现在我收到一个错误: System.IO.IOException未处理 Message=找不到资源“pages/pagetranslat
Dim U As New Uri("Pages/PageTranslate.xaml", UriKind.Relative)
现在我在另一个项目中使用此项目作为参考。我使用如下实例调用FrameProject
New FrameProjectInstance1
现在我收到一个错误:
System.IO.IOException未处理
Message=找不到资源“pages/pagetranslate.xaml”。
Source=PresentationFramework
堆栈跟踪:
位于MS.Internal.AppModel.ResourcePart.GetStreamCore(文件模式,文件访问)
在System.IO.Packaging.PackagePart.GetStream(文件模式,文件访问)
在System.IO.Packaging.PackWebResponse.CachedResponse.GetResponseStream()中
在System.IO.Packaging.PackWebResponse.GetResponseStream()中
在System.IO.Packaging.PackWebResponse.get_ContentType()中
我试过了:运气不好。总是犯同样的错误。还包括:
U = New Uri("/Pages/PageTranslate.xaml", UriKind.RelativeOrAbsolute)
U = New Uri("pack://application:,,,Pages/PageTranslate.xaml", UriKind.RelativeOrAbsolute)
U = New Uri("pack://application:,,,/Pages/PageTranslate.xaml", UriKind.Absolute)
可能您应该使用“MyDll;/Pages/PageTranslate.xaml”?其中,MyDll是框架项目的dll名称。可能是您应该使用的名称:“MyDll;/Pages/PageTranslate.xaml”?其中MyDll是框架项目的dll名称。我发现这对我有用。希望它也能帮助其他人:
'In Application.Xaml
Public Shared NavigationService As NavigationService 'set when MainWindow.xaml is Loaded
Public Shared Function NavigationUri(ByVal Path As String) As Uri
Dim asm As System.Reflection.Assembly
asm = System.Reflection.Assembly.GetExecutingAssembly
Dim U As Uri
U = New Uri("pack://application:,,,/" & asm.GetName().Name & ";component/" & Path, UriKind.Absolute)
Return U
End Function
这样称呼:
Application.NavigationService.Source = Application.NavigationUri("Pages/PageAutoTranslation.xaml")
我发现这对我有用。希望它也能帮助其他人:
'In Application.Xaml
Public Shared NavigationService As NavigationService 'set when MainWindow.xaml is Loaded
Public Shared Function NavigationUri(ByVal Path As String) As Uri
Dim asm As System.Reflection.Assembly
asm = System.Reflection.Assembly.GetExecutingAssembly
Dim U As Uri
U = New Uri("pack://application:,,,/" & asm.GetName().Name & ";component/" & Path, UriKind.Absolute)
Return U
End Function
这样称呼:
Application.NavigationService.Source = Application.NavigationUri("Pages/PageAutoTranslation.xaml")
谢谢你。你的想法很好。只是语法和how-to并没有完全按照这种方式工作。我找到了一个解决方案并发布了它。谢谢,谢谢你。你的想法很好。只是语法和how-to并没有完全按照这种方式工作。我找到了一个解决方案并发布了它。谢谢