Ich habe ein WPF-Beispielprojekt entwickelt.Programmatisch eine QuickInfo anzeigen
Hier ist das Haupt Markup XAML des Fenster:
<Window x:Class="ToolTipSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
WindowState="Maximized">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Click="OnButtonClick">Show ToolTip</Button>
<StatusBar Grid.Row="2">
<StatusBarItem>
<TextBlock Text="TextBlock With ToolTip">
<TextBlock.ToolTip>
<ToolTip x:Name="m_toolTip">
ToolTip
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</StatusBarItem>
</StatusBar>
</Grid>
</Window>
Hier das Hauptfenster des Code-Behind ist ohne die Verwendung von Aussagen:
namespace ToolTipSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnButtonClick(object p_sender, RoutedEventArgs p_args)
{
m_toolTip.IsOpen = true;
}
}
}
Ich möchte die Quick-Info programmatisch zeigen, wenn die Taste geklickt.
Ich möchte, dass die QuickInfo über dem übergeordneten TextBlock angezeigt wird.
Die QuickInfo wird automatisch angezeigt, wenn sich der Mauszeiger über dem TextBlock befindet und während einer konstanten Zeitspanne C ungefähr 5 Sekunden entspricht.
Ich möchte, dass die QuickInfo während C angezeigt wird, wenn auf die Schaltfläche geklickt wird.
Meine Ziele werden im aktuellen Projekt nicht erreicht.
Die Quick-Info wird angezeigt, wenn die Schaltfläche geklickt wird:
Aber:
- Die Quick-Info ist zu weit von seinem TextBlock- Elternteil.
- Die Quick-Info automatisch nicht
Was versteckt ich meine Ziele zu tun haben, zu erreichen?
Jede Hilfe wird sehr geschätzt.
Große Antwort! Ich habe "Placement" total übersehen, zusammen mit "PlacementTarget" machen sie den Trick in meinem Testprojekt. Aber ich musste 'PlacementTarget' beim Klick setzen, weil es sonst nicht richtig gesetzt wird (ToolTip ist nicht in der Baumstruktur während der Initialisierung, das ist der Grund, denke ich). – icebat
@Sheridan Ich habe den Handler des PreviewMouseDown-Ereignisses der Schaltfläche und des Handlers des PreviewMouseUp-Ereignisses der Schaltfläche implementiert, wie Sie es beschreiben. Die QuickInfo wird jedoch während einiger Sekunden nicht angezeigt, wenn sich der Mauszeiger über dem TextBlock befindet. – user1139666
Fügen Sie einige Haltepunkte hinzu und debuggen Sie Ihr Problem, um zu sehen, was vor sich geht. Mein Beispiel funktioniert gut, also sollte auch dein * funktionieren *. – Sheridan