Generic.xaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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:ZToolTip}">
  8. <Setter Property="ToolTipService.HorizontalOffset" Value="0" />
  9. <Setter Property="ToolTipService.VerticalOffset" Value="0" />
  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="Template">
  15. <Setter.Value>
  16. <ControlTemplate TargetType="{x:Type ZUI:ZToolTip}">
  17. <ZUI:AngleBorder
  18. x:Name="AngleBorder"
  19. Padding="10"
  20. VerticalAlignment="Center"
  21. Background="{TemplateBinding Background}"
  22. BorderBrush="{TemplateBinding BorderBrush}"
  23. BorderThickness="{TemplateBinding BorderThickness}"
  24. CornerRadius="4"
  25. Placement="{TemplateBinding PlacementEx}"
  26. SnapsToDevicePixels="True"
  27. TailHeight="6"
  28. TailHorizontalOffset="15"
  29. TailWidth="12"
  30. UseLayoutRounding="True">
  31. <ContentPresenter />
  32. </ZUI:AngleBorder>
  33. <ControlTemplate.Triggers>
  34. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopLeft">
  35. <Setter TargetName="AngleBorder" Property="Placement" Value="BottomLeft" />
  36. <Setter Property="Placement" Value="Top" />
  37. </DataTrigger>
  38. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopCenter">
  39. <Setter TargetName="AngleBorder" Property="Placement" Value="BottomCenter" />
  40. <Setter Property="Placement" Value="Top" />
  41. <Setter Property="ToolTipService.HorizontalOffset">
  42. <Setter.Value>
  43. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Center">
  44. <Binding Path="PlacementTarget.ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  45. <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  46. </MultiBinding>
  47. </Setter.Value>
  48. </Setter>
  49. </DataTrigger>
  50. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="TopRight">
  51. <Setter TargetName="AngleBorder" Property="Placement" Value="BottomRight" />
  52. <Setter Property="Placement" Value="Top" />
  53. <Setter Property="ToolTipService.HorizontalOffset">
  54. <Setter.Value>
  55. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Right">
  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="BottomLeft">
  63. <Setter TargetName="AngleBorder" Property="Placement" Value="TopLeft" />
  64. <Setter Property="Placement" Value="Bottom" />
  65. </DataTrigger>
  66. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="BottomCenter">
  67. <Setter TargetName="AngleBorder" Property="Placement" Value="TopCenter" />
  68. <Setter Property="Placement" Value="Bottom" />
  69. <Setter Property="ToolTipService.HorizontalOffset">
  70. <Setter.Value>
  71. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Center">
  72. <Binding Path="PlacementTarget.ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  73. <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  74. </MultiBinding>
  75. </Setter.Value>
  76. </Setter>
  77. </DataTrigger>
  78. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="BottomRight">
  79. <Setter TargetName="AngleBorder" Property="Placement" Value="TopRight" />
  80. <Setter Property="Placement" Value="Bottom" />
  81. <Setter Property="ToolTipService.HorizontalOffset">
  82. <Setter.Value>
  83. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Right">
  84. <Binding Path="PlacementTarget.ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  85. <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=Self}" />
  86. </MultiBinding>
  87. </Setter.Value>
  88. </Setter>
  89. </DataTrigger>
  90. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftTop">
  91. <Setter TargetName="AngleBorder" Property="Placement" Value="RightTop" />
  92. <Setter Property="Placement" Value="Left" />
  93. </DataTrigger>
  94. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftCenter">
  95. <Setter TargetName="AngleBorder" Property="Placement" Value="RightCenter" />
  96. <Setter Property="Placement" Value="Left" />
  97. <Setter Property="ToolTipService.VerticalOffset">
  98. <Setter.Value>
  99. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Center">
  100. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  101. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  102. </MultiBinding>
  103. </Setter.Value>
  104. </Setter>
  105. </DataTrigger>
  106. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="LeftBottom">
  107. <Setter TargetName="AngleBorder" Property="Placement" Value="RightBottom" />
  108. <Setter Property="Placement" Value="Left" />
  109. <Setter Property="ToolTipService.VerticalOffset">
  110. <Setter.Value>
  111. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Right">
  112. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  113. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  114. </MultiBinding>
  115. </Setter.Value>
  116. </Setter>
  117. </DataTrigger>
  118. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightTop">
  119. <Setter TargetName="AngleBorder" Property="Placement" Value="LeftTop" />
  120. <Setter Property="Placement" Value="Right" />
  121. </DataTrigger>
  122. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightCenter">
  123. <Setter TargetName="AngleBorder" Property="Placement" Value="LeftCenter" />
  124. <Setter Property="Placement" Value="Right" />
  125. <Setter Property="ToolTipService.VerticalOffset">
  126. <Setter.Value>
  127. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Center">
  128. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  129. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  130. </MultiBinding>
  131. </Setter.Value>
  132. </Setter>
  133. </DataTrigger>
  134. <DataTrigger Binding="{Binding PlacementEx, RelativeSource={RelativeSource Self}}" Value="RightBottom">
  135. <Setter TargetName="AngleBorder" Property="Placement" Value="LeftBottom" />
  136. <Setter Property="Placement" Value="Right" />
  137. <Setter Property="ToolTipService.VerticalOffset">
  138. <Setter.Value>
  139. <MultiBinding Converter="{StaticResource OffsetConverter}" ConverterParameter="Right">
  140. <Binding Path="PlacementTarget.ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  141. <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=Self}" />
  142. </MultiBinding>
  143. </Setter.Value>
  144. </Setter>
  145. </DataTrigger>
  146. </ControlTemplate.Triggers>
  147. </ControlTemplate>
  148. </Setter.Value>
  149. </Setter>
  150. </Style>
  151. </ResourceDictionary>