Причина, по которой всплывающие подсказки не затронуты, - это всплывающие подсказки, которые не являются частью визуального дерева окна. Таким образом, любое преобразование макета, выполняемое в компонентах окна, не будет переноситься на всплывающие подсказки. Если у вас есть в основном общие подсказки (текст в основном), вы можете создать не-шпоночный стиль в окне ресурсов и WPF автоматически применить это для всех ваших подсказок:
<Window.Resources>
<Style TargetType="ToolTip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Border.LayoutTransform>
<ScaleTransform ScaleX="{Binding ScaleFactor}"></ScaleTransform>
</Border.LayoutTransform>
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel x:Name="MainPanel">
<StackPanel.LayoutTransform>
<ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}"></ScaleTransform>
</StackPanel.LayoutTransform>
<TextBlock ToolTip="blah">haha!</TextBlock>
</StackPanel>
В примере, у меня есть Scalex/Y для всплывающая подсказка, привязанная к свойству ScaleFactor в моей модели просмотра окна. Вы можете сохранить динамику таким образом, я верю.
Являются ли ваши масштабные факторы динамическими? Если да, откуда они взялись? – Rowbear
Они есть, но я упростил код, чтобы их больше не было. Я использую это в своем XAML: <Центр ScaleTransform CenterX = "0" CenterY = "0" ScaleX = "0.7" ScaleY = "0.7" /> –
Warpin