2010-06-25 8 views
7

जब मैं सहायता छवि पर माउस hovers जब मैं एक टूल टिप दिखा रहा हूँ।क्या मैं डब्ल्यूपीएफ में माउस क्लिक इवेंट पर टूलटिप दिखा सकता हूं?

XAML नीचे दिया गया है

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

यह है जब उपयोगकर्ता माउस छवि नियंत्रण पर घूमता टूल टिप को दर्शाता है। जब मैं छवि पर क्लिक करता हूं तो क्या मैं टूलटिप को स्पष्टीकरण दिखा सकता हूं?

कृपया मदद करें !!

उत्तर

9

आप ToolTip.IsOpen को सत्य पर सेट करके टूल टिप को खोलने के लिए मजबूर कर सकते हैं। ToolTip प्रॉपर्टी को सेट करते समय आप स्पष्ट रूप से एक का निर्माण करके टूलटिप ऑब्जेक्ट का संदर्भ प्राप्त कर सकते हैं।

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

समाधान के लिए बहुत धन्यवाद .. यह मेरे लिए काम किया। लेकिन मुझे IsOpen संपत्ति को गलत कहां सेट करना चाहिए? यदि टूल टूल टिप के बाहर कहीं भी क्लिक करता है तो मैं टूल टिप बंद करना चाहता हूं। –

+0

मैंने UserControl_MouseLeftButtonUp को संभाला है जिसमें मैंने ((टूलटिप) ((फ्रेमवर्क एलिमेंट) लिखा है। हेल्प इमेज)। टूलटिप) IsOpen = false; लेकिन जैसे ही मैं छवि नियंत्रण पर माउस करता हूं, यह घटना निष्पादित होती है। –

+0

@ आशीषशू I ToolOip.closed घटना में गलत है IOpen सेट करें। –

1

नहीं, आप माउसक्लिक पर टूलटिप नहीं बुला सकते हैं। टूलटिप का उपयोग करने के बजाय, आप पॉपअप नियंत्रण का उपयोग कर सकते हैं। माउस क्लिक पर Popup Control को आमंत्रित करें।

+0

उत्तर के लिए धन्यवाद:

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

लिखने

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

और फिर अपने MouseUp हैंडलर में करने के बजाय कुछ ऐसा करते हैं। क्या मैं टूल होवर पर पॉपअप कंट्रोल भी दिखा सकता हूं जैसा कि हम टूल टिप दिखाते हैं? –

0
EventManager.RegisterClassHandler(typeof(Window), Mouse.MouseDownEvent, 
            new MouseButtonEventHandler((o, args) => 
            { 
             if (_popup.IsOpen) 
              _popup.IsOpen = false; 
            })); 
संबंधित मुद्दे