У меня есть требование, когда мне нужно показать несколько кнопок рядом с выпадающим списком с помощью всплывающего окна или всплывающей подсказки. Например, добавление кнопок в 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
EDIT: Контрольную всплывающее окно также хорошо, однако оригинальный вопрос остается, как нажать на кнопку внутри всплывающего окна, когда выпадающий объект больше не имеет фокуса (в предположении, что всплывающее окно IsOpen привязано к свойству IsMouseOver).
Спасибо, -Mike
Почему бы не использовать System.Windows.Controls.Primitives.Popup класс? – Vladimir
Если вы хотите, чтобы он сохранялся, когда мышь не была более длинной, посмотрите на дизайн, который не связан с IsMouseOver. – Paparazzi