windows phone 8.1开发:(消息弹出框)强大的ContentDialog

原文出自:http://www.bcmeng.com/contentdialog/

在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows phone8.1中变成了MessageDialog.使用方法大体相差不大.不过MessageDialog的功能过于简单,许多时候无法满足我们的实际需要.在windows phone 8.1中出现了ContentDialog,ContentDialog不仅可以选择半屏或者全屏展示,里面的内容还可以像一个XAML页面一样实现自定义.
下面我们通过代码和实际运行效果来看一下:

ContentDialog半屏:

private  async void Button_Click(object sender, RoutedEventArgs e)//半屏
        {
            ContentDialog dialog = new ContentDialog()
            {
                Title = "Download updates?", //标题
                Content = "This update will clean the slate for Iron Man",//内容
                FullSizeDesired=false,  //是否全屏展示
                PrimaryButtonText = "Yes, clean it",//第一个按钮内容
                SecondaryButtonText = "No, Dont!"
            };
            dialog.SecondaryButtonClick += dialog_SecondaryButtonClick;//第二个按钮单击事件
            dialog.PrimaryButtonClick += dialog_PrimaryButtonClick;

            ContentDialogResult result = await dialog.ShowAsync();
            if (result == ContentDialogResult.Primary) { } //处理第一个按钮的返回
            else if (result == ContentDialogResult.Secondary) { }//处理第二个按钮的返回

        }

       async  void dialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            await new MessageDialog("您选择了第一个按钮").ShowAsync();
        }

        async  void dialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            await new MessageDialog("您选择了第二个按钮").ShowAsync();
        }

ContentDialog全屏:

private async void Button_Click_1(object sender, RoutedEventArgs e)//全屏
        {
            ContentDialog contentdialog = new ContentDialog();
            contentdialog.Title = "编程小梦";
            contentdialog.Content = "专注于windows phone应用开发";
            contentdialog.PrimaryButtonText = "赞一个";
            contentdialog.SecondaryButtonText = "顶一个";
            contentdialog.FullSizeDesired = true;
            await contentdialog.ShowAsync();
        }

ContentDialog自定义1:

<ContentDialog
    x:Class="ContentDialogDemo.ContentDialog1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ContentDialogDemo"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="DIALOG TITLE"
    PrimaryButtonText="sign in"
    SecondaryButtonText="cancel"
    PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
    SecondaryButtonClick="ContentDialog_SecondaryButtonClick">

    <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <TextBox Name="email" Header="Email address"/>
        <PasswordBox  Name="password" Header="Password"/>
        <CheckBox Name="showPassword" Content="Show password"/>

        <!-- 内容主体 -->
        <TextBlock Name="body" Style="{StaticResource MessageDialogContentStyle}" TextWrapping="Wrap">
            <TextBlock.Text>
                Lorem ipsum dolor sit amet, consectetur adipisicing elit,
                    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </TextBlock.Text>
        </TextBlock>
    </StackPanel>
</ContentDialog>

调用方法:

ContentDialog1 contentDialog1 = new ContentDialog1(); //ContentDialog1是系统自带的内容对话框页面
       await contentDialog1.ShowAsync();

ContentDialog自定义2:

<ContentDialog
    x:Class="ContentDialogDemo.ContentDialog2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ContentDialogDemo"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="小梦词典"
    PrimaryButtonText="关于"
    SecondaryButtonText="好评"
    PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
    SecondaryButtonClick="ContentDialog_SecondaryButtonClick"
<Grid >
        <GridView  HorizontalAlignment="Center">

            <GridViewItem Margin="5">
                <Button  Content="查词" Background="#FFC5246D"
                        ></Button>
            </GridViewItem>
            <GridViewItem Margin="5">
                <Button Content="翻译"  Background="#FFEAC418"
                        Name="translate" ></Button>
            </GridViewItem>
            <GridViewItem Margin="5">
                <Button Content="生词"  Background="#FFCB32DA"
                       ></Button>
            </GridViewItem>
            <GridViewItem Margin="5">
                <Button Content="关于"  Background="#FF58E4B5"
                        ></Button>
            </GridViewItem>
        </GridView>
    </Grid>
</ContentDialog>

调用方法和上面一样,最终运行效果如下:

时间: 2024-10-16 16:10:57

windows phone 8.1开发:(消息弹出框)强大的ContentDialog的相关文章

背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog

原文:背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) MessageDialog ContentDialog 示例1.MessageDialog 的示例Controls/FlyoutControl/MessageDialogDemo.xaml <Page x:Class="Windows10.Controls.FlyoutCo

Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

(function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, showType:'show' }); }; /** * 获取时间区间 * @param type 1:当年的一月一日到现在:type 2:获取当月的第一天和最后一天 * return {startTime:xxxx,endTime:xxxx} */ $.getTimeInterval = functi

angularjs提示消息弹出框

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ max-height: 400px; background-color: #eee; width: 50%; position: fixed; bo

Android 开发笔记 “弹出框”

AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this); builder.setMessage("Are you sure you want to exit?") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(Dial

android开发学习 ------- 弹出框

这是一种方法,是我觉得简单易懂代码量较少的一种: /* 创建AlertDialog对象并显示 */ final AlertDialog alertDialog = new AlertDialog.Builder(LoginActivity.this).create(); alertDialog.show(); /* 添加对话框自定义布局 */ alertDialog.setContentView(R.layout.dialog_login); /* 获取对话框窗口 */ Window windo

Android----消息弹出框

关于Android的知识,自从工作了就没有什么时间去总结学习过的知识,我个人比较喜欢学习后总结,今天就写一下关于android中消息弹出框的几种方式的简单示例,按照自己的思路写了一段,希望对和我一样在学习Android的各位同志们有所帮助,写的不好的还是希望各位技术大神多多指点,以后我会不段改进和学习与总结.欧克. 首先android中主要有8种消息对话框的方式. 1.AlertDialog.Builder(普通消息框) 1 AlertDialog.Builder ab=new AlertDia

背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu

原文:背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) ToolTip Popup PopupMenu 示例1.ToolTip 的示例Controls/FlyoutControl/ToolTipDemo.xaml <Page x:Class="Windows10.Controls.FlyoutControl.ToolTipDemo&q

背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout

原文:背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) FlyoutBase Flyout MenuFlyout 示例1.FlyoutBase(基类) 的示例Controls/FlyoutControl/FlyoutBaseDemo.xaml <Page x:Class="Windows10.Controls.FlyoutC

selenium自动化实施中对windows弹出框的几种常见处理方案

一.概述 在使用自动化框架selenium实施中,经常会遇到windows弹出框的出现,刚入门的web自动化测试小伙伴不要慌哦! 二.几种常见的处理windows弹出框的方案 2.1 Selenium 处理安全对话框 (windows security dialog)用autoit 来代替 2.1.1 安装autoit-v3-setup.exe 2.1.2 将AutoitX3.dll和jcob.1.18-M2-x86.dll放到C:\windows\System32路径下:如果是64位系统,需把