2
我有這樣的代碼:WPF工具提示放置目標返回null
<DataTemplate>
<Border>
<Border.ToolTip>
<ToolTip IsEnabled="True"
Placement="Right">
<ToolTip.VerticalOffset>
<MultiBinding Converter="{StaticResource OffsetConverter}"
ConverterParameter="Vertical">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource Self}"/>
</MultiBinding.Bindings>
</MultiBinding>
</ToolTip.VerticalOffset>
<TextBlock Margin="0"
Padding="0"
TextAlignment="Left"
TextWrapping="Wrap"
MaxWidth="200"
Text="{Binding Description}" FontStyle="Italic">
</TextBlock>
</ToolTip>
</Border.ToolTip>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0">
<Image Height="16" Width="16" Style="{StaticResource AutoCompletionImageStyle}" Margin="0"/>
<Label Content="{Binding DisplayText}" Margin="0" Padding="0"/>
</StackPanel>
</Border>
</DataTemplate>
而這個轉換器:
public object Convert(object[] values, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
AutoCompletionViewModel.OffsetType offsetType = (AutoCompletionViewModel.OffsetType)Enum.Parse(typeof(AutoCompletionViewModel.OffsetType), parameter.ToString());
ToolTip tooltip = values[0] as ToolTip;
Border border = tooltip.PlacementTarget as Border;
double aCalculatedOffset = 0.0;
return aCalculatedOffset;
}
我需要計算基於邊界的一些性質的工具提示的偏移。工具提示相對於邊框出現,並按預期手動更改偏移量。但是,當我嘗試訪問轉換器中的工具提示的PlacementTarget
屬性時,它爲空...
因此,雖然工具提示是邊框的直接子項,應該將其作爲展示位置目標,但在代碼中一片空白。任何想法我在這裏失蹤?
我也嘗試通過與<Binding RelativeSource="{RelativeSource AncestorType={x:Type Border}}"/>
的邊界無濟於事。
我真的很困惑,因爲如果邊界不是工具提示的邏輯或視覺父級,工具提示如何正確放置自己?