1.Popup控件永远不会自动显示,为了显示Popup控件必须设置IsOpen属性。
2.默认情况下,Popup.StaysOen属性被设置为True,并且Popup控件会一直显示,直到显式地将IsOpen属性设置为False。如果将Popup.StaysOpen属性设置为False,当用户在其他地方单击鼠标时,Popup控件就会消失。
如果Popup控件的IsOpen属性设置为True时,通过Popup控件的PopupAnimation属性可以设置Popup控件的显示方式。
由于Popup控件不和任何控件相关联,所以无论在哪定义Popup标签都无所谓。
关联控件可以这样:
PlacementTarget="{Binding ElementName=button1}" //绑定在哪个控件上,这里是和button1这个控件绑定
Placement="Bottom" //在控件的那个位置显示,这里是在button1这个控件下方显示
//实例化对象
Popup pop = new Popup();
//pop里面生成的内容,本例是StackPannel中包括一个textbox
StackPanel panel = new StackPanel();
panel.Orientation = System.Windows.Controls.Orientation.Horizontal;
panel.HorizontalAlignment = HorizontalAlignment.Stretch;
panel.VerticalAlignment = VerticalAlignment.Top;
panel.Height = 100;
panel.Width = 480;
panel.Margin = new Thickness(0,150, 0, 0);
panel.VerticalAlignment = VerticalAlignment.Bottom;
panel.Background = Application.Current.Resources["PhoneAccentBrush"] as SolidColorBrush;
TextBox txbKeyword = new TextBox();
txbKeyword.Height = 100;
txbKeyword.Width = 380;
txbKeyword.FontSize = 40;
txbKeyword.Text = "测试TextBox";
//添加到LayoutRoot中
panel.Children.Add(txbKeyword);
pop.Child = panel;
this.LayoutRoot.Children.Add(pop);
//打开显示
pop.IsOpen = true;
非常有用,解决大问题了!