NavigationWindowBaseStyle.xaml 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls">
  4. <Style x:Key="MenuItem4NavigationWindowStyle" BasedOn="{StaticResource MenuItemBaseStyle}" TargetType="MenuItem">
  5. <Setter Property="Header" Value="{Binding (JournalEntry.Name)}"/>
  6. <Setter Property="Command" Value="NavigationCommands.NavigateJournal"/>
  7. <Setter Property="CommandTarget" Value="{Binding TemplatedParent, RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
  8. <Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Self}}"/>
  9. </Style>
  10. <Style x:Key="NavigationWindowBaseStyle" TargetType="NavigationWindow">
  11. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  12. <Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
  13. <Setter Property="UseLayoutRounding" Value="True"/>
  14. <Setter Property="Template">
  15. <Setter.Value>
  16. <ControlTemplate TargetType="NavigationWindow">
  17. <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
  18. <DockPanel LastChildFill="True">
  19. <Border DockPanel.Dock="Top" BorderThickness="0,0,0,1" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource DarkDefaultBrush}">
  20. <hc:ButtonGroup x:Name="NavChrome" Width="90" Margin="10,6" HorizontalAlignment="Left">
  21. <Button Padding="6" hc:IconElement.Geometry="{StaticResource LeftGeometry}" Command="NavigationCommands.BrowseBack">
  22. <Button.ContextMenu>
  23. <ContextMenu x:Name="BackNavMenu" ItemContainerStyle="{StaticResource MenuItem4NavigationWindowStyle}" ItemsSource="{Binding Path=(NavigationWindow.BackStack), RelativeSource={RelativeSource TemplatedParent}}"/>
  24. </Button.ContextMenu>
  25. </Button>
  26. <Button Padding="6" hc:IconElement.Geometry="{StaticResource RightGeometry}" Command="NavigationCommands.BrowseForward">
  27. <Button.ContextMenu>
  28. <ContextMenu x:Name="ForwardNavMenu" ItemContainerStyle="{StaticResource MenuItem4NavigationWindowStyle}" ItemsSource="{Binding Path=(NavigationWindow.ForwardStack), RelativeSource={RelativeSource TemplatedParent}}"/>
  29. </Button.ContextMenu>
  30. </Button>
  31. <Button Padding="6" hc:IconElement.Geometry="{StaticResource RotateRightGeometry}" Command="NavigationCommands.Refresh"/>
  32. </hc:ButtonGroup>
  33. </Border>
  34. <hc:SimplePanel>
  35. <AdornerDecorator>
  36. <ContentPresenter x:Name="PART_NavWinCP" ClipToBounds="true"/>
  37. </AdornerDecorator>
  38. <ResizeGrip x:Name="WindowResizeGrip" HorizontalAlignment="Right" IsTabStop="false" Visibility="Collapsed" VerticalAlignment="Bottom"/>
  39. </hc:SimplePanel>
  40. </DockPanel>
  41. </Border>
  42. <ControlTemplate.Triggers>
  43. <Trigger Property="ShowsNavigationUI" Value="False">
  44. <Setter Property="Visibility" TargetName="NavChrome" Value="Collapsed"/>
  45. </Trigger>
  46. <Trigger Property="CanGoBack" Value="False">
  47. <Setter Property="IsEnabled" TargetName="BackNavMenu" Value="false"/>
  48. </Trigger>
  49. <Trigger Property="CanGoForward" Value="False">
  50. <Setter Property="IsEnabled" TargetName="ForwardNavMenu" Value="false"/>
  51. </Trigger>
  52. <MultiTrigger>
  53. <MultiTrigger.Conditions>
  54. <Condition Property="ResizeMode" Value="CanResizeWithGrip"/>
  55. <Condition Property="WindowState" Value="Normal"/>
  56. </MultiTrigger.Conditions>
  57. <Setter Property="Visibility" TargetName="WindowResizeGrip" Value="Visible"/>
  58. </MultiTrigger>
  59. </ControlTemplate.Triggers>
  60. </ControlTemplate>
  61. </Setter.Value>
  62. </Setter>
  63. </Style>
  64. </ResourceDictionary>