У меня есть то, что составляет страницу меню в моем приложении Silverlight. В StackPanel есть несколько кнопок гиперссылки. Гиперссылки сопоставляются с другой страницей Uris в приложении с помощью навигационной рамки с UriMapper. Все это отображается в сетке LayoutRoot на странице меню. Я бы предпочел, чтобы UriMapping был доступен для всего приложения, что, возможно, означало бы, что он должен быть в App.xaml, но я не могу понять, как поместить его туда, чтобы он работал. Есть идеи? Вот код, который похож на то, что я получил:
<Grid x:Name="LayoutRoot">
<Border x:Name="ContentBorder" Style="{StaticResource ContentBorderStyle}">
<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" Source="" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="/AgencyTechnical" MappedUri="/Views/AgencyTechnical.xaml"/>
<uriMapper:UriMapping Uri="/AgencyBusiness" MappedUri="/Views/AgencyBusiness.xaml"/>
...
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
</Border>
<ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}" Margin="10,10,0,0" Width="640">
<StackPanel Name="stackPanel1" Width="490" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0" Height="326">
<TextBlock Text="Agency Screens" Name="AgencyScreenLabel" Style="{StaticResource MenuLabelStyle}" />
<HyperlinkButton Name="AgencyTechInfoLink" Style="{StaticResource LinksMenuStyle}"
Content="Agency Technical Information" ... />
<HyperlinkButton Name="AgencyTechInfoLink" Style="{StaticResource LinksMenuStyle}"
Content="Agency Technical Information" ... />
Опять же, как мне сделать эту рамку навигации доступной для всего приложения? Т.е. в одном месте?
Я принимаю ответ @Gabriel McAdams, но мне пришлось немного его изменить. Я использую шаблон для страницы навигации Silverlight, и в App.xaml есть словарь ресурсов, который, если мне мешают, если я добавлю сопоставление непосредственно в узел Application.Resources. Я обнаружил, что могу добавить отображение в Styles.xaml, и оно отлично работает. Я получаю «Тип ResourceDictionary внутри ResourceDictionary и не имеет ключа». ошибка, если я сделаю следующее:
<Application.Resources>
<... Uri mapping here />
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Но добавление его в Assets / Styles.xaml прекрасно работает.