关闭

<wp7>另类弹窗,coding4Fun插件提供的弹窗

2276人阅读 评论(2) 收藏 举报

从我的网易博客移过来的。。


先提供效果图吧。

 

 

 这个是coding4Fun提供的MessagePrompt弹窗。还提供了ToastPrompt:土司弹出框,类似于土司推送通知。

AboutPrompt:说明弹出框,特点是弹出框会在屏幕中间,其他的弹出框是在屏幕的上方(其他可以通过Margin调整文位置)。

PasswordInputPrompt:密码输入弹出框。

InputPrompt:输入弹出框,用于弹出输入框输入其他的信息。

这些都不讨论了。需要的可以到官网文档:http://coding4fun.codeplex.com/wikipage?title=MessagePrompt&referringTitle=Documentation

或者到:http://coding4fun.codeplex.com/wikipage?title=MessagePrompt&referringTitle=Documentation了解。

今天讨论用MessagePrompt自定义自己的弹窗。弹窗可以带输入框等内容。

先新建一个window phone User Control。命名为BodyUserControl。这个主要是设计弹窗的内容。

添加代码:

 

       

 <Border BorderBrush="YellowGreen" BorderThickness="2">
            <StackPanel x:Name="LayoutRoot1" Background="{StaticResource PhoneChromeBrush}"  Margin="0,0,0,10">
                <TextBlock Text="Body declared in UserControl XAML" HorizontalAlignment="Center"/>
                <Image Source="/RoundBtnDemo;component/images/MB_0010_radio.png" Height="80" Width="80" HorizontalAlignment="Center"/>
                <TextBox x:Name="msg" />
                <Border Background="YellowGreen" Height="100" Width="400">
                    <TextBlock x:Name="tx" Text="This is the first text in the Body section. Another Body content here" TextWrapping="Wrap" VerticalAlignment="Center"/>
                </Border>
            </StackPanel>
        </Border>



效果图为:


在主界面里面的需要弹窗的onclick事件或者其他里面添加代码:

 MessagePrompt msgPrompt = new MessagePrompt();
            msgPrompt.Title = "UserControl test";
            msgPrompt.Body = new BodyUserControl();
            msgPrompt.IsAppBarVisible = false;
            msgPrompt.Completed += new EventHandler<PopUpEventArgs<string, PopUpResult>>(msgPrompt_Completed);
            msgPrompt.Show();



 最重要的来了:怎么获取弹窗上的TextBox 的内容呢?

其实是在那个Completed事件可以获取:

 

 void msgPrompt_Completed(object sender, PopUpEventArgs<string, PopUpResult> e)
        {
            if (e.PopUpResult == PopUpResult.Ok)//先判断是否是点击那个勾,也就是确定
            {
                var msgPrompt = sender as MessagePrompt;//把sender转为MessagePrompt对象
                var bodyControl = msgPrompt.Body as BodyUserControl;//取出BodyUserControl对象
  //取出BodyUserControl中Name为msg,也就是那个TextBox。
  //这里的Showmsg是一个TextBlock,这样,就能取到弹窗上的控件的值
                ShowMsg.Text = bodyControl.msg.Text;
            }
            
        }



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:280275次
    • 积分:3027
    • 等级:
    • 排名:第12016名
    • 原创:62篇
    • 转载:6篇
    • 译文:0篇
    • 评论:136条
    我的其他博客
    最新评论