2010-06-25 8 views
7

sto mostrando un suggerimento quando il mouse si libra immagine Guida a.Posso mostrare esplicitamente tooltip cliccando con il mouse eventi in WPF?

XAML è il seguente:

<Image 
    x:Name="HelpImage" 
    Width="16" 
    Height="16" 
    Grid.Row="1" 
    Source="..\Images\ToolBar\Help.png" 
    Grid.Column="2"> 
    <Image.ToolTip> 
     <Grid 
      Background="LightGreen"> 
      <Grid.RowDefinitions> 
       <RowDefinition /> 
       <RowDefinition /> 
      </Grid.RowDefinitions> 
      <StackPanel 
       Background="LightGreen" 
       Height="25" 
       Width="300" 
       Orientation="Horizontal" 
       HorizontalAlignment="Left" 
       VerticalAlignment="Top"> 
       <Image 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Stretch" 
        Width="24" 
        Height="24" 
        Source="/Images/Test.png" 
        Name="image1" /> 
       <TextBlock 
        FontFamily="Aharoni" 
        Margin="5" 
        FontSize="20" 
        FontWeight="Bold" 
        Foreground="Black" 
        TextWrapping="Wrap" 
        VerticalAlignment="Top" 
        Height="Auto" 
        HorizontalAlignment="Right" 
        Width="Auto"> 
         <Run 
          FontFamily="Calibri" 
          FontSize="14" 
          Foreground="DarkRed" 
          FontWeight="Bold" 
          Text="Bandwidth Base Value" /> 
       </TextBlock> 
      </StackPanel> 
      <TextBlock 
       Grid.Row="1" 
       Background="LightGreen"> 
       This is Help content</TextBlock> 
     </Grid> 
    </Image.ToolTip> 
</Image> 

mostra punta dell'utensile quando il mouse utente passa sul controllo dell'immagine. Posso mostrare esplicitamente la descrizione quando l'utente fa clic sull'immagine?

Please Help !!

risposta

9

è possibile forzare la punta strumento per aprire impostando ToolTip.IsOpen su true. È possibile ottenere un riferimento all'oggetto ToolTip costruendo esplicitamente uno quando si imposta la proprietà ToolTip. Invece di

<Image.ToolTip> 
    <Grid> 
    ... 
    </Grid> 
</Image.ToolTip> 

scrittura

<Image.ToolTip> 
    <ToolTip> 
     <Grid> 
     ... 
     </Grid> 
    </ToolTip> 
</Image.ToolTip> 

E poi nel gestore MouseUp fare qualcosa di simile:

((ToolTip)((FrameworkElement)sender).ToolTip).IsOpen = true; 
+0

Molte grazie per la soluzione .. ha funzionato per me. Ma dove dovrei impostare la proprietà IsOpen su false? Voglio chiudere la descrizione degli strumenti se l'utente fa clic ovunque al di fuori del suggerimento. –

+0

Ho gestito UserControl_MouseLeftButtonUp in cui ho scritto ((ToolTip) ((FrameworkElement) this.HelpImage) .ToolTip) .IsOpen = false; Ma questo evento viene eseguito non appena eseguo il mouse su Controllo immagine. –

+0

@AshishAshu Ho impostato IsOpen su false nell'evento ToolTip.Closed. –

1

No non si può invocare il tooltip sul click del mouse. Invece di usare la descrizione comando, puoi usare il controllo Popup. Richiama lo Popup Control facendo clic con il mouse.

+0

Grazie per la risposta. Posso anche mostrare un controllo popup sul mouse al passaggio del mouse come mostriamo il suggerimento? –

0
EventManager.RegisterClassHandler(typeof(Window), Mouse.MouseDownEvent, 
            new MouseButtonEventHandler((o, args) => 
            { 
             if (_popup.IsOpen) 
              _popup.IsOpen = false; 
            })); 
Problemi correlati