我有一个带有工具提示的控件。我想要的是当我将鼠标悬停在控件上并且工具提示打开时:如果我然后用鼠标进入工具提示 - 这将触发mouseEnter事件以触发其他一些操作。我最接近找到一个解决方案是在触发器上添加一个ToolTipClosing事件...但是一旦我离开控件就会激活 - 即使我的鼠标没有进入工具提示。 (在工具提示本身上触发MouseEnter事件似乎根本没有被触发)
这是一个例子:(如果我输入工具提示,我想改变边框的背景)
XAML
<Border Height="300" Name="dummyBorder"
Width="200"
Background="Red" />
<Label ToolTipService.InitialShowDelay="3000"
Content="Hover over here"
ToolTipService.ShowDuration="4000"
ToolTipService.Placement="Right"
ToolTipClosing="Label_ToolTipClosing"
Width="100"
HorizontalAlignment="Center"
Margin="10">
<Label.ToolTip>
<ToolTip Name="tt" MouseEnter="ttBorder_MouseEnter">
<Border Background="Brown"
Name="ttBorder"
MouseEnter="ttBorder_MouseEnter"
Width="100"
Height="50">
<TextBlock Text="This is a tool tip." />
</Border>
</ToolTip>
</Label.ToolTip>
</Label>
CodeBehind :(这些都不起作用)
private void Label_ToolTipClosing(object sender, ToolTipEventArgs e)
{
if (tt.IsMouseDirectlyOver)
{
dummyBorder.Background = Brushes.Aqua;
}
}
private void ttBorder_MouseEnter(object sender, MouseEventArgs e)
{
dummyBorder.Background = Brushes.Aqua;
}
我特别想使用工具提示而不是弹出窗口。这可能吗? 任何帮助将不胜感激!
答案 0 :(得分:0)
你会想尝试这样的事情:
<Window.CommandBindings>
<CommandBinding Command="ChangeColour"
CanExecute="ChangeCanExecute"
Executed="ChangeExecuted" />
</Window.CommandBindings>
在工具提示标记内:
<MouseBinding Gesture="LeftClick" Command="{Binding ChangeColour}"/>
然后在你的代码隐藏中:
private void ChangeCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}
private void ChangeExecuted(object sender, ExecutedRoutedEventArgs e)
{
dummyBorder.Background = Brushes.Aqua;
e.Handled = true;
}
答案 1 :(得分:0)
嗯(9个月后没有回答)我想那时候没办法了。 (除非另有证明)