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控件,遇到个问题,求助的主要内容,如果未能解决你的问题,请参考以下文章