这不是我想要的那么难,但我几天都在拉我的头发!
我只想要与 WINdows Explorer 相同的工具提示行为:使用显示完整元素的工具提示覆盖部分隐藏的树/列表元素
我在树视图中使用以下数据模板
<HierarchicalDataTemplate DataType="{x:Type TreeVM:SurveyorTreeViewItemViewModel}" ItemsSource="{Binding Children, Converter={StaticResource surveyorSortableCollectionViewConverter}}">
<StackPanel x:Name="SurveyorStackPanel" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal" Height="20" Width="auto">
... (Textblocks, properties, usercontrol, border,... )
<StackPanel.ToolTip>
<ToolTip Placement="RelativePoint" Padding="0" HasDropShadow="False"
DataContext="{Binding ElementName=SurveyorStackPanel}">
<Rectangle HorizontalAlignment="Left" VerticalAlignment="Center"
Width="{Binding ElementName=SurveyorStackPanel, Path=Width}"
Height="{Binding ElementName=SurveyorStackPanel, Path=Height}">
<Rectangle.Fill>
<VisualBrush AutoLayoutContent="True" AlignmentX="Left"
Visual="{Binding}" Stretch="None"/>
</Rectangle.Fill>
</Rectangle>
</ToolTip>
</StackPanel.ToolTip>
</StackPanel>
</HierarchicalDataTemplate>
如您所见,我正在尝试使用 Visualbrush。但这不起作用。它只显示您在屏幕上看到的内容。
我已经尝试使用静态资源并绑定在工具提示中的新堆栈面板上,但这只会留下一个 blanc 工具提示。
我有什么问题吗?我必须使用替代品吗?我在 WPF 中很新。我知道基础知识,但绑定/资源对我来说有点新
编辑这里是我试过的静态源:
<ToolTip x:Key="reflectingTooltip" DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}" Placement="RelativePoint" Padding="0" HasDropShadow="False">
<Rectangle Width="{Binding ActualWidth}" Height="{Binding Path=ActualHeight}" Margin="0"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Rectangle.Fill>
<VisualBrush Visual="{Binding}" Stretch="None" AlignmentX="Left" />
</Rectangle.Fill>
</Rectangle>
</ToolTip>
编辑 2
以下是我现在的情况的几张图片:当工具提示显示时,必须显示整个元素。在工具提示之前:http ://desmond.imageshack.us/Himg832/scaled.php?server=832&filename=beforedo.png&res=landing
当显示工具提示时:http ://desmond.imageshack.us/Himg842/scaled.php?server=842&filename=afterbl.png&res=landing
工具提示的高度太大,只显示屏幕显示的内容。唯一的问题是“填写”隐藏的文本。