ToolTabStripItem.axaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <ResourceDictionary xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:dmc="using:Dock.Model.Controls"
  4. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  5. x:CompileBindings="True">
  6. <Design.PreviewWith>
  7. <Border Padding="20">
  8. <StackPanel Spacing="20">
  9. <ToolTabStripItem>Leaf</ToolTabStripItem>
  10. <ToolTabStripItem IsSelected="True">Arch</ToolTabStripItem>
  11. <ToolTabStripItem Background="Yellow">Background</ToolTabStripItem>
  12. </StackPanel>
  13. </Border>
  14. </Design.PreviewWith>
  15. <x:Double x:Key="TabStripItemMinHeight">48</x:Double>
  16. <x:Double x:Key="TabStripItemPipeThickness">2</x:Double>
  17. <ContextMenu x:Key="ToolTabStripItemContextMenu" x:DataType="dmc:IToolDock" x:CompileBindings="True">
  18. <MenuItem Header="_Float"
  19. Command="{Binding Owner.Factory.FloatDockable}"
  20. CommandParameter="{Binding}"
  21. IsVisible="{Binding CanFloat}"/>
  22. <MenuItem Header="_Dock"
  23. Command="{Binding Owner.Factory.PinDockable}"
  24. CommandParameter="{Binding}"
  25. IsEnabled="{Binding OriginalOwner, Converter={x:Static ObjectConverters.IsNotNull}, FallbackValue=False}"
  26. IsVisible="{Binding CanPin, FallbackValue=False}"/>
  27. <MenuItem Header="_Auto Hide"
  28. Command="{Binding Owner.Factory.PinDockable}"
  29. CommandParameter="{Binding }"
  30. IsEnabled="{Binding OriginalOwner, Converter={x:Static ObjectConverters.IsNull}, FallbackValue=False}">
  31. <MenuItem.IsVisible>
  32. <MultiBinding Converter="{x:Static BoolConverters.And}">
  33. <Binding Path="CanPin" FallbackValue="{x:False}" />
  34. <Binding Path="$parent[HostWindow]" Converter="{x:Static ObjectConverters.IsNull}" />
  35. </MultiBinding>
  36. </MenuItem.IsVisible>
  37. </MenuItem>
  38. <MenuItem Header="_Close"
  39. Command="{Binding Owner.Factory.CloseDockable}"
  40. CommandParameter="{Binding}"
  41. IsVisible="{Binding CanClose}"/>
  42. </ContextMenu>
  43. <ControlTheme x:Key="{x:Type ToolTabStripItem}" TargetType="ToolTabStripItem">
  44. <Setter Property="(TextElement.FontSize)" Value="{DynamicResource DockFontSizeNormal}" />
  45. <Setter Property="FontWeight" Value="Normal" />
  46. <Setter Property="MinHeight" Value="0" />
  47. <Setter Property="VerticalContentAlignment" Value="Center" />
  48. <Setter Property="Background" Value="Transparent" />
  49. <Setter Property="Foreground" Value="{DynamicResource DockThemeForegroundBrush}" />
  50. <Setter Property="BorderBrush" Value="{DynamicResource DockThemeBorderLowBrush}" />
  51. <Setter Property="BorderThickness" Value="0 0 0 0" />
  52. <Setter Property="Margin" Value="0" />
  53. <Setter Property="Padding" Value="4 1 4 0" />
  54. <Setter Property="Template">
  55. <ControlTemplate>
  56. <Panel Margin="0,5" >
  57. <Border Name="SelectedBorder" IsVisible="False"
  58. Margin="6,0"
  59. Padding="0"
  60. CornerRadius="8">
  61. <suki:GlassCard Classes="Control" CornerRadius="8" >
  62. </suki:GlassCard>
  63. </Border>
  64. <Border Margin="12,4" Background="{TemplateBinding Background}"
  65. TextElement.FontFamily="{TemplateBinding FontFamily}"
  66. TextElement.FontSize="{TemplateBinding FontSize}"
  67. TextElement.FontWeight="{TemplateBinding FontWeight}"
  68. BorderBrush="{TemplateBinding BorderBrush}"
  69. BorderThickness="0"
  70. Padding="{TemplateBinding Padding}"
  71. ContextMenu="{DynamicResource ToolTabStripItemContextMenu}"
  72. x:DataType="dmc:IToolDock" x:CompileBindings="True">
  73. <DockableControl TrackingMode="Tab">
  74. <StackPanel x:Name="DragTool"
  75. Background="Transparent"
  76. Orientation="Horizontal"
  77. Spacing="2"
  78. DockProperties.IsDragArea="True"
  79. DockProperties.IsDropArea="True">
  80. <Panel Margin="2">
  81. <ContentPresenter FontWeight="DemiBold" ContentTemplate="{Binding $parent[ToolControl].HeaderTemplate}"
  82. Content="{Binding}" />
  83. </Panel>
  84. </StackPanel>
  85. </DockableControl>
  86. </Border>
  87. </Panel>
  88. </ControlTemplate>
  89. </Setter>
  90. <Style Selector="^:selected /template/ Border#SelectedBorder">
  91. <Setter Property="IsVisible" Value="True"></Setter>
  92. </Style>
  93. </ControlTheme>
  94. </ResourceDictionary>