FlatToolTipStyle.xaml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <ResourceDictionary
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:Converters="clr-namespace:CustomUI.Converters"
  5. xmlns:ZUI="clr-namespace:CustomUI">
  6. <Converters:OffsetConverter x:Key="OffsetConverter" />
  7. <Style TargetType="{x:Type ZUI:FlatToolTip}">
  8. <!--<Setter Property="ToolTipService.HorizontalOffset" Value="-10" />
  9. <Setter Property="ToolTipService.VerticalOffset" Value="8" />-->
  10. <Setter Property="Foreground" Value="White" />
  11. <Setter Property="BorderBrush" Value="#585D6B" />
  12. <Setter Property="BorderThickness" Value="0" />
  13. <Setter Property="Background" Value="#585D6B" />
  14. <Setter Property="Padding" Value="7" />
  15. <Setter Property="Template">
  16. <Setter.Value>
  17. <ControlTemplate TargetType="{x:Type ZUI:FlatToolTip}">
  18. <Border
  19. x:Name="Root"
  20. Padding="{TemplateBinding Padding}"
  21. Background="{TemplateBinding Background}"
  22. CornerRadius="3"
  23. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  24. UseLayoutRounding="{TemplateBinding UseLayoutRounding}">
  25. <ContentPresenter />
  26. </Border>
  27. <ControlTemplate.Triggers>
  28. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopLeft">
  29. <Setter Property="Placement" Value="Top" />
  30. </DataTrigger>
  31. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopCenter">
  32. <Setter Property="Placement" Value="Top" />
  33. <Setter Property="ToolTipService.VerticalOffset" Value="-10" />
  34. <Setter Property="ToolTipService.HorizontalOffset">
  35. <Setter.Value>
  36. <MultiBinding Converter="{StaticResource OffsetConverter}">
  37. <Binding Path="PlacementTarget.ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  38. <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  39. </MultiBinding>
  40. </Setter.Value>
  41. </Setter>
  42. </DataTrigger>
  43. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopRight">
  44. <Setter Property="Placement" Value="Top" />
  45. </DataTrigger>
  46. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="BottomLeft">
  47. <Setter Property="Placement" Value="Bottom" />
  48. <Setter Property="ToolTipService.VerticalOffset" Value="-5" />
  49. </DataTrigger>
  50. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="BottomCenter">
  51. <Setter Property="Placement" Value="Bottom" />
  52. <Setter Property="ToolTipService.VerticalOffset" Value="-5" />
  53. <Setter Property="ToolTipService.HorizontalOffset">
  54. <Setter.Value>
  55. <MultiBinding Converter="{StaticResource OffsetConverter}">
  56. <Binding Path="PlacementTarget.ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  57. <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  58. </MultiBinding>
  59. </Setter.Value>
  60. </Setter>
  61. </DataTrigger>
  62. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="BottomRight">
  63. <Setter Property="Placement" Value="Bottom" />
  64. <Setter Property="ToolTipService.VerticalOffset" Value="-5" />
  65. </DataTrigger>
  66. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftTop">
  67. <Setter Property="Placement" Value="Left" />
  68. <Setter Property="ToolTipService.VerticalOffset" Value="-9" />
  69. <Setter Property="ToolTipService.HorizontalOffset" Value="7" />
  70. </DataTrigger>
  71. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftCenter">
  72. <Setter Property="Placement" Value="Left" />
  73. <Setter Property="ToolTipService.HorizontalOffset" Value="-10" />
  74. <Setter Property="ToolTipService.VerticalOffset">
  75. <Setter.Value>
  76. <MultiBinding Converter="{StaticResource OffsetConverter}">
  77. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  78. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  79. </MultiBinding>
  80. </Setter.Value>
  81. </Setter>
  82. </DataTrigger>
  83. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftBottom">
  84. <Setter Property="Placement" Value="Left" />
  85. <Setter Property="ToolTipService.VerticalOffset" Value="-9" />
  86. <Setter Property="ToolTipService.HorizontalOffset" Value="7" />
  87. </DataTrigger>
  88. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightTop">
  89. <Setter Property="Placement" Value="Right" />
  90. <Setter Property="ToolTipService.VerticalOffset" Value="-9" />
  91. <Setter Property="ToolTipService.HorizontalOffset" Value="-5" />
  92. </DataTrigger>
  93. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightCenter">
  94. <Setter Property="Placement" Value="Right" />
  95. <Setter Property="ToolTipService.HorizontalOffset" Value="-5" />
  96. <Setter Property="ToolTipService.VerticalOffset">
  97. <Setter.Value>
  98. <MultiBinding Converter="{StaticResource OffsetConverter}">
  99. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  100. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  101. </MultiBinding>
  102. </Setter.Value>
  103. </Setter>
  104. </DataTrigger>
  105. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightBottom">
  106. <Setter Property="Placement" Value="Right" />
  107. <Setter Property="ToolTipService.VerticalOffset" Value="-9" />
  108. <Setter Property="ToolTipService.HorizontalOffset" Value="-5" />
  109. </DataTrigger>
  110. </ControlTemplate.Triggers>
  111. </ControlTemplate>
  112. </Setter.Value>
  113. </Setter>
  114. </Style>
  115. </ResourceDictionary>