2010-06-25 26 views
7

Fare Yardım görüntüsünde görüntülendiğinde bir Araç İpucu gösteriyorum.WPF'deki Fare Tıklaması olayında açıklık gösterme ipucu verebilir miyim?

xaml aşağıda verilmiştir: Kullanıcı fare görüntü denetimi geldiğinde

<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> 

Bu Aracı İpucu gösterir. Kullanıcı görüntüyü tıkladığında açıklık gösterme ToolTip'i kullanabilir miyim?

Lütfen Yardım!

cevap

9

Araç ucunu ToolTip.IsOpen ayarını true değerine getirerek açabilirsiniz. ToolTip özelliğini ayarlarken bir tane açıkça oluşturup ToolTip nesnesine başvuru alabilirsiniz. cevap için

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

Çözüm için çok teşekkürler .. Benim için çalıştı. Ama IsOpen özelliğini false olarak nerede ayarlamalıyım? Kullanıcı, araç ipucunun dışında herhangi bir yeri tıklarsa, araç ipucunu kapatmak istiyorum. –

+0

((Araç İpucu) ((FrameworkElement) bu.HelpImage) yazdığım UserControl_MouseLeftButtonUp'ı kullandım .ToolTip) .IsOpen = false; Ancak bu olay, Görüntü denetiminde fareyi başlattığımda yürütülür. –

+0

@AshishAshu ToolTip.Closed olayında false değerini false olarak ayarlıyorum. –

1

Hayır, araç ipucunu fare kapanı üzerinde çalıştıramazsınız. Tooltip kullanmak yerine, Popup kontrolünü kullanabilirsiniz. Fare tıklamasıyla Popup Control'u çağırın.

+0

teşekkür: Bunun yerine MouseUp işleyicisi içinde

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

yazma

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

Ve sonra böyle bir şey yapmak. Araç ipucunu gösterdiğimiz gibi Fare Gezgini üzerinde de bir Popup Kontrol gösterebilir miyim? –

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