2010-03-11 12 views

cevap

8

Bir StaysOpen araç ipucu özelliği vardır, ancak this book'a göre, bir Popup denetimi kullanmanız daha iyidir (yalnızca bir araç ipucu gibi görünmesini sağlayın).

pratikte hiçbir etkisi yoktur: Burada

kitaptan bir alıntı. Bu özelliğin kullanım amacı, kullanıcı kullanıcı başka bir yere tıklatıncaya kadar açık kalmasını sağlayan bir araç ipucu oluşturmanıza olanak sağlamak için 'dur. Ancak, ToolTipService.ShowDuration özelliği , StaysOpen özelliğini geçersiz kılar. Bir Sonuç olarak, balonlar her zaman (genellikle yaklaşık 5 saniye) veya kullanıcı fare uzaklaştığı yapılandırılabilir bir süre sonra kaybolur. 'un süresiz olarak açık kalmasını sağlayan araç ipucu benzeri bir pencere oluşturmak için isterseniz, en kolay yaklaşımı, Popup denetimini kullanmaktır.

+0

Pop-up kontrolü ile uğraşmak zorunda kalacaktım korktum. Cevabınız için teşekkürler – viggity

+0

Yani evet mi hayır mı? Bu, Tooltip'in çok can sıkıcı bir davranışı. – xr280xr

1

basit yolu Popup kullanmaktır. Kod örneğine bakın.

<!--Your ToolTip--> 
<Popup x:Name="InfoPopup" PlacementTarget="{Binding ElementName=yourElement}" AllowsTransparency="True" StaysOpen="False" Placement="Mouse" PopupAnimation="Fade"> 
    <Border BorderBrush="White" BorderThickness="1" Background="#FFFFFFFF" > 
     <Label Content="Your text here" /> 
    </Border> 
</Popup> 

<!--Your element. Border, Button etc..--> 
<Border x:Name="yourElement" Background="#FFFFFF" MinWidth="20" Height="20"> 
    <Border.Triggers> 
     <EventTrigger RoutedEvent="Mouse.MouseDown"> 
      <BeginStoryboard> 
       <Storyboard> 
        <BooleanAnimationUsingKeyFrames Duration="0:0:0:0" Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="InfoPopup"> 
         <DiscreteBooleanKeyFrame Value="True"></DiscreteBooleanKeyFrame> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 

     </EventTrigger> 
     <EventTrigger RoutedEvent="Mouse.MouseUp"> 
      <BeginStoryboard> 
       <Storyboard> 
        <BooleanAnimationUsingKeyFrames Duration="0:0:0:0" Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="InfoPopup"> 
         <DiscreteBooleanKeyFrame Value="False"></DiscreteBooleanKeyFrame> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Border.Triggers> 
</Border>