当我们学习新知识的时候,我觉得最好的方式就是,一边学习理论,一边练习,下面是我学习win8时Popup控件的练习。假设有个需求如下:
有一个按钮,当我们点击的时候,会弹出一个弹出层,弹出层上有一些简单控件,比如ListBox,当我们点击弹出层以外的地方时或者在ListBox中进行选择时,弹出层自动关闭,当我们在ListBox选择了以后,需要把选择的数据赋给一个TextBox。
按照需求步骤如下
拖入一个Popup,IsLightDismissEnabled这个属性有意思,设置他可以实现在点击弹出层以外的地方时,弹出层自动消失
IsOpen属性是是否显示。
<Popup Name="pop" IsOpen="False" IsLightDismissEnabled="True">
<Grid Background="#FFE5E5E5" Height="768" Width="329">
<ListBox Name="list" HorizontalAlignment="Left" Height="273" Margin="10,342,0,0" VerticalAlignment="Top" Width="188"/>
</Grid>
</Popup>
接着我们拖入一个按钮和文本框
<Button Name="btn" Content="Button" HorizontalAlignment="Left" Margin="893,623,0,0" VerticalAlignment="Top" Click="btn_Click"/>
<TextBox Name="txt" HorizontalAlignment="Left" Margin="893,455,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top"/>
编写按钮的点击事件
void list_Tapped(object sender, TappedRoutedEventArgs e)
{
value = this.list.SelectedValue.ToString();
this.txt.Text = value;
this.pop.IsOpen = false;
}
其中value是一个全局变量,方便在弹出层和界面之间传递数据