WPF中的Popup控件,遇到个问题,求助

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中的Popup控件,遇到个问题,求助相关的知识,希望对你有一定的参考价值。

别用button了、button的click事件在popup的关闭事件之后触发、没办法在click事件中判断popup关闭是因为点了别的地方自动关闭的 还是点了button上自动关闭的。

可以放一个图片在那里。我之前也遇到过这个问题要解决。我不知道你需不需要在popup弹出和关闭时。那个按钮的显示状态需不需要改变,比如我当时需要做的就是popup关闭时,按钮是一个向下的箭头、打开时是一个向上的箭头(类似于QQ登陆窗口,账号输入框)。

我是用那个图片的mousedown mouseup 还有popup的关闭事件 三个事件去处理的。
bool IsUnchenked = false; //鼠标是否在下拉框没有弹出的时候按下
bool IsClick = false; //鼠标是否按下
bool IsShowAccountList_Closed = true; //下拉框是否关闭
int AccountInfoListSelectedIndex = 0;

/// <summary>
/// 下拉框关闭触发事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ShowAccountList_Closed(object sender, EventArgs e)

Pulldown.Visibility = System.Windows.Visibility.Visible;
Pullup.Visibility = System.Windows.Visibility.Hidden;
IsShowAccountList_Closed = true;


/// <summary>
/// 下拉框弹出按钮被按下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Pull_MouseDown(object sender, MouseButtonEventArgs e)

IsClick = true;
if (IsShowAccountList_Closed)

IsUnchenked = true;



/// <summary>
/// 下拉框按钮上响应鼠标Up事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Canvas_MouseUp(object sender, MouseButtonEventArgs e)

if (IsUnchenked)

IsUnchenked = false;
IsShowAccountList_Closed = false;
Pulldown.Visibility = System.Windows.Visibility.Hidden;
Pullup.Visibility = System.Windows.Visibility.Visible;
ShowAccountList.IsOpen = true;

if (AccountInfoListSelectedIndex > -1 && AccountInfoListSelectedIndex < AccountInfoList.Items.Count)

AccountInfoList.SelectedIndex = AccountInfoListSelectedIndex;


参考技术A 你可以后台指定它的固定位置

以上是关于WPF中的Popup控件,遇到个问题,求助的主要内容,如果未能解决你的问题,请参考以下文章

关于WPF中Popup中的一些用法的总结

关于WPF中Popup中的一些用法的总结

拖动 WPF Popup 控件

自定义WPF Popup控件

WPF 怎么设置comboBox.text

不透明度未应用于 WPF Popup 控件