我有一個需求,我需要通過使用彈出窗口或工具提示來顯示下拉菜單旁邊的某些按鈕。例如,將按鈕添加到工具提示的Contnet並在用戶將鼠標懸停在下拉列表上時顯示它。顯示工具提示並獲得工具提示內的焦點
但是,只有當鼠標指針位於下拉菜單上時,工具提示纔會保持打開狀態。所以,如果我設置了工具提示,並添加了2個按鈕,用戶就不會有機會點擊工具提示中的按鈕,因爲他必須將鼠標從下拉列表中移開才能做到這一點,工具提示消失。
即使在用戶將鼠標從下拉菜單移開之後,是否有辦法讓工具提示保持打開一段時間,並且理想情況下只要工具提示能夠獲得焦點,工具提示就會保持打開狀態?
代碼:
<Style x:Key="ToolTipStyle" TargetType="ToolTip">
<Setter Property="Placement" Value="Right"/>
</Style>
<ToolTip x:Key="YourToolTip" Style="{StaticResource ToolTipStyle}">
<StackPanel Background="Yellow" Orientation="Horizontal">
<Button Content="Yes"/>
<Button Content="No"/>
</StackPanel>
</ToolTip>
<Style x:Key="DropDownStyle" TargetType="Controls:RadComboBox">
<Setter Property="ToolTip" Value="{StaticResource YourToolTip}"/>
<Setter Property="ToolTipService.InitialShowDelay" Value="1000"/>
<Setter Property="ToolTipService.ShowDuration" Value="2000"/>
<Setter Property="ToolTipService.BetweenShowDelay" Value="10000"/>
</Style>
<Controls:RadComboBox x:Name="mydropDown" Style="{StaticResource DropDownStyle}" ItemsSource="{StaticResource MyItems}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100">
</Controls:RadComboBox>
注:我使用.NET 3.5
編輯:一個彈出的控制也很好,但原來的問題仍然存在,如何單擊彈出裏面的按鈕,當下拉菜單不再有焦點時(假設彈出窗口的IsOpen綁定到IsMouseOver屬性)。
感謝, -Mike
爲什麼不使用System.Windows.Controls.Primitives.Popup類? – Vladimir
如果您希望在鼠標不再結束時繼續運行,請查看未綁定到IsMouseOver的設計。 – Paparazzi