WPF弹出窗口与工具提示

时间:2017-05-24 09:05:24

标签: c# wpf popup tooltip

我已经看到很多关于何时使用工具提示以及何时使用弹出窗口的争论,但我不知道哪一个更适合我的情况。

我有一个按钮。当我点击它时,会出现弹出式面板,它有很多文字和一个小图像(因此它将是一个非常大的面板)。面板必须保持在那里,直到我将光标移动到按钮上(当光标仍在面板上但关闭按钮时,它仍然必须关闭。)

<Button Click="clicked" MouseLeave="mouseleaved"/>
<Popup Name="mypopup">
    <stuff>
</Popup>
private void clicked(object sender, RoutedEventArgs e) {
    mypopopup.isopen = true;
}

private void mouseleaved(object sender, MouseEventArgs e) {
    mypopup.isopen = false;
}

这是我到目前为止所处的地方。问题是,有时,弹出窗口出现在按钮的顶部(阻止按钮的视图,因此MouseLeave事件开始,Popup立即消失)。我希望Popup保持不变,直到我将光标移离按钮。

所以我做了一些谷歌,我认为Tooltip可以避免这个问题。但是如何在按钮点击时显示工具提示而不是按钮悬停?

哪一个对我更好?工具提示或弹出窗口?

修改

我觉得我的问题不太清楚。我问的是我应该使用哪一个 - 基于我的具体情况的Tooltip vs Popup(第2段)而不是一般的。我认为Popup是正确使用的,但我使用它有问题(第3段)。所以我的问题是我可以用Popup解决这个问题,还是应该更好地使用Tooltip?

1 个答案:

答案 0 :(得分:1)

  

但是如何在按钮点击时显示工具提示而不是按钮悬停?

处理Click的{​​{1}}事件,并将Button的{​​{1}}属性设置为IsOpen

Popup
true
  

哪一个对我更好?工具提示或弹出窗口?

每当您想以任何方式自定义行为时,

private void Button_Click(object sender, RoutedEventArgs e) { popup1.IsOpen = true; } 都是可取的。

修改:如果我正确理解您的问题,这应该有效:

<Popup x:Name="popup1" StaysOpen="False">
    <TextBlock>popup content...</TextBlock>
</Popup>
<Button Click="Button_Click" Content="op" />
Popup
相关问题