NavigationBar.xaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:controls="clr-namespace:FWindSoft.Wpf.Controls">
  4. <Style TargetType="{x:Type controls:NavigationBar}">
  5. <Setter Property="Template">
  6. <Setter.Value>
  7. <ControlTemplate TargetType="{x:Type controls:NavigationBar}">
  8. <ControlTemplate.Resources>
  9. <BooleanToVisibilityConverter x:Key="Con"></BooleanToVisibilityConverter>
  10. <ControlTemplate x:Key="btnTemp" TargetType="Button">
  11. <Border VerticalAlignment="Center" HorizontalAlignment="Center" Name="border" Padding="2">
  12. <ContentPresenter Content="{TemplateBinding ContentControl.Content}" />
  13. </Border>
  14. <ControlTemplate.Triggers>
  15. <Trigger Property="IsMouseOver" Value="True">
  16. <Setter Property="BorderThickness" TargetName="border" Value="0,0,0,1" />
  17. <Setter Property="BorderBrush" TargetName="border" Value="Blue" />
  18. </Trigger>
  19. <!--<Trigger Property="IsFocused" Value="True">
  20. <Setter Property="BorderThickness" TargetName="border" Value="0,0,0,1" />
  21. <Setter Property="BorderBrush" TargetName="border" Value="Blue" />
  22. </Trigger>-->
  23. <Trigger Property="IsEnabled" Value="False">
  24. <Setter Property="Button.Foreground" TargetName="border" Value="Gray" />
  25. </Trigger>
  26. </ControlTemplate.Triggers>
  27. </ControlTemplate>
  28. </ControlTemplate.Resources>
  29. <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
  30. <Grid>
  31. <Grid.RowDefinitions>
  32. <RowDefinition Height="35"></RowDefinition>
  33. <RowDefinition Height="Auto"></RowDefinition>
  34. <RowDefinition Height="*"></RowDefinition>
  35. <!--<RowDefinition Height="0"></RowDefinition>-->
  36. </Grid.RowDefinitions>
  37. <Grid >
  38. <Grid.ColumnDefinitions>
  39. <ColumnDefinition></ColumnDefinition>
  40. <ColumnDefinition Width="Auto"></ColumnDefinition>
  41. </Grid.ColumnDefinitions>
  42. <StackPanel x:Name="Nav" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center">
  43. <Button Content="返回" Template="{StaticResource btnTemp}" Command="{x:Static controls:NavigationBar.GoBack}" Visibility="{Binding GoBackVisible,RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ResourceKey=Con}}" Margin="0,0,15,0"></Button>
  44. <!--<TextBlock Text="&#0009;"></TextBlock>-->
  45. <TextBlock Text="当前窗口:" VerticalAlignment="Center"></TextBlock>
  46. <Border BorderBrush="Black" BorderThickness="0,1,0,0"></Border>
  47. <ItemsControl ItemsSource="{Binding NavigationItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" >
  48. <ItemsControl.ItemsPanel>
  49. <ItemsPanelTemplate>
  50. <StackPanel HorizontalAlignment="Left" Orientation="Horizontal"></StackPanel>
  51. </ItemsPanelTemplate>
  52. </ItemsControl.ItemsPanel>
  53. <ItemsControl.ItemTemplate>
  54. <DataTemplate>
  55. <StackPanel Orientation="Horizontal">
  56. <Button Template="{StaticResource btnTemp}" x:Name="Btn" Content="{Binding WindowDisplay}" Command="{x:Static controls:NavigationBar.Jump}" CommandParameter="{Binding }"></Button>
  57. <TextBlock Text="&gt;" Name="Txt"></TextBlock>
  58. </StackPanel>
  59. <DataTemplate.Triggers>
  60. <DataTrigger Binding="{Binding IsEnabled,ElementName=Btn}" Value="False">
  61. <Setter TargetName="Btn" Property="Visibility" Value="Collapsed"></Setter>
  62. <Setter TargetName="Txt" Property="Visibility" Value="Collapsed"></Setter>
  63. </DataTrigger>
  64. </DataTemplate.Triggers>
  65. </DataTemplate>
  66. </ItemsControl.ItemTemplate>
  67. </ItemsControl>
  68. <Button Content="{Binding ShowWindow.Title,RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource btnTemp}" IsEnabled="False" Margin="0,0,15,0"></Button>
  69. </StackPanel>
  70. <ContentPresenter Grid.Column="1" Content="{Binding ShowWindow.AttachElement,RelativeSource={RelativeSource TemplatedParent}}"></ContentPresenter>
  71. </Grid>
  72. <Border Grid.Row="1" Grid.Column="0" BorderBrush="Black" BorderThickness="0.5"></Border>
  73. <ScrollViewer Name="PART_Child" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Panel.ZIndex="-1" CanContentScroll="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Content="{TemplateBinding ShowWindow}">
  74. <!--//使用不使用Content,影响DataGrid 列宽为*的列的显示;但是使用下面又会产生不必要的滚动条-->
  75. <!--<ContentPresenter Margin="-1" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" Content="{TemplateBinding ShowWindow}"></ContentPresenter>-->
  76. </ScrollViewer>
  77. </Grid>
  78. </Border>
  79. </ControlTemplate>
  80. </Setter.Value>
  81. </Setter>
  82. </Style>
  83. </ResourceDictionary>