私が望むのはそれほど難しいことではありませんが、何日も髪を引っ張っています!
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 を使用しようとしています。しかし、これはうまくいきません。画面に表示されているものだけが表示されます。
ツールチップにある新しいスタックパネルで静的リソースとバインディングを試しましたが、空白のツールチップしか残りません。
私は何か間違っていますか?代替手段を使用する必要がありますか? 私は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
ツールチップの高さが大きすぎて、画面に表示されるものしか表示されません。唯一の問題は、隠しテキストを「埋める」ことです。