WPF Frame Uri не работает при вызове в качестве ссылки на проект - PullRequest
1 голос
/ 28 апреля 2011

У меня есть простая рамка в моем проекте WPF в VS2010.Uri вызывается в codebehind с:

Dim U As New Uri("Pages/PageTranslate.xaml", UriKind.Relative)

Теперь я использую этот проект в качестве ссылки в другом проекте.Я вызываю FrameProject, используя экземпляр типа

New FrameProjectInstance1

Теперь я получаю сообщение об ошибке:

Необработанное System.IO.IOException Сообщение = Не удается найти ресурсы 'pages / pagetranslate.xaml.Source = PresentationFramework StackTrace: в MS.Internal.AppModel.ResourcePart.GetStreamCore (режим FileMode, доступ к FileAccess) в System.IO.Packaging.PackagePart.GetStream (режим FileMode, доступ FileAccess) в System.IO.Packaging.PackWebResponse.Control.GetResponseStream () в System.IO.Packaging.PackWebResponse.GetResponseStream () в System.IO.Packaging.PackWebResponse.get_ContentType ()

   ... 

Я пробовал: http://msdn.microsoft.com/en-us/library/aa970069.aspx#Y5978без удачиВсегда получал одну и ту же ошибку.Также с:

        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)

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Я узнал, что это работает для меня.Надеюсь, это поможет и другим:

  '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

.

0 голосов
/ 29 апреля 2011

Может быть, вы должны использовать это: "MyDll; /Pages/PageTranslate.xaml"? Где MyDll - это имя dll вашего FrameProject.

...