• 与众不同 windows phone (49)


    [源码下载]


    与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl



    作者:webabcd


    介绍
    与众不同 windows phone 8.1 之 新增控件

    • 概述
    • ContentDialog - 对话框控件
    • MapControl - 又一个地图控件



    示例
    1、概述
    Summary.xaml

    <Page
        x:Class="Demo.Control.Summary"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Demo.Control"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    
        <Grid>
            <StackPanel>
    
                <TextBlock TextWrapping="Wrap">
                    <Run>1、新建 wp 项目时,有了 silverlight 版 wp 和 windows 版 wp 的区别,抛弃 silverlight 吧,以后只会有 Windows Runtime Apps</Run>
                    <LineBreak />
                    <Run>2、本系列仅以 windows 版 wp 为例,所有之前写过的与 Windows Store Apps 相关的知识点都不会再写,关于 Windows Store Apps 的知识点请参见《重新想象 Windows 8 Store Apps 系列文章》</Run>
                    <LineBreak />
                    <Run>3、大多数控件都是 wp 和 windows 通用的,另外 wp 有一些自己独有的控件,后续会一一说明</Run>
                </TextBlock>
    
            </StackPanel>
        </Grid>
    </Page>


    2、演示对话框控件的应用
    ContentDialogDemo/CustomContentDialog.xaml

    <ContentDialog
        x:Class="Demo.Control.ContentDialogDemo.CustomContentDialog"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Demo.Control.ContentDialogDemo"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        
        Title="custom dialog title"
        PrimaryButtonText="primary button"  
        SecondaryButtonText="secondary button"
        PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
        SecondaryButtonClick="ContentDialog_SecondaryButtonClick">
    
        <!--以下为自定义对话框的标题-->
        <ContentDialog.TitleTemplate>
            <DataTemplate>
                <TextBlock Text="custom dialog title" Foreground="Red" />
            </DataTemplate>
        </ContentDialog.TitleTemplate>
        
        <!--以下为自定义对话框的内容-->
        <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>
                    content content content content content content content content content content content content content content
                </TextBlock.Text>
            </TextBlock>
        </StackPanel>
        
    </ContentDialog>

    ContentDialogDemo/CustomContentDialog.xaml.cs

    /*
     * 自定义 ContentDialog
     */
    
    using Windows.UI.Xaml.Controls;
    
    namespace Demo.Control.ContentDialogDemo
    {
        public sealed partial class CustomContentDialog : ContentDialog
        {
            public CustomContentDialog()
            {
                this.InitializeComponent();
            }
    
            private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
            {
                // 用户点击了第一个按钮(在对话框的调用者中通过 ContentDialogResult 获取用户的行为)
            }
    
            private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
            {
                // 用户点击了第二个按钮(在对话框的调用者中通过 ContentDialogResult 获取用户的行为)
            }
        }
    }

    ContentDialogDemo/Demo.xaml

    <Page
        x:Class="Demo.Control.ContentDialogDemo.Demo"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Demo.Control.ContentDialogDemo"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    
        <Grid>
            <StackPanel>
                
                <Button Name="btnShowDialog" Content="弹出一个标准的对话框" Click="btnShowDialog_Click" />
    
                <Button Name="btnShowCustomDialog" Content="弹出一个自定义的对话框" Click="btnShowCustomDialog_Click" Margin="0 10 0 0" />
    
                <TextBlock Name="lblMsg" Margin="0 10 0 0" />
                
            </StackPanel>
        </Grid>
    </Page>

    ContentDialogDemo/Demo.xaml.cs

    /*
     * ContentDialog - 对话框控件(wp only)
     *     FullSizeDesired - 是否全屏弹出对话框
     *     Title, TitleTemplate - 对话框的标题(可以自定义样式)
     *     Content, ContentTemplate - 对话框的内容(可以自定义样式)
     *     PrimaryButtonText - 对话框第一个按钮显示的文本
     *     SecondaryButtonText - 对话框第二个按钮显示的文本
     *     PrimaryButtonCommand, PrimaryButtonCommandParameter, SecondaryButtonCommand, SecondaryButtonCommandParameter - 按钮命令及命令参数
     *     
     *     PrimaryButtonClick - 第一个按钮按下时触发的事件
     *     SecondaryButtonClick - 第二个按钮按下时触发的事件
     *     Closed, Closing, Opened - 顾名思义的一些事件
     *     
     *     ShowAsync() - 弹出对话框
     *     Hide() - 隐藏对话框
     *     
     * 
     * 注意:自定义对话框参见 CustomContentDialog.xaml
     */
    
    using System;
    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    
    namespace Demo.Control.ContentDialogDemo
    {
        public sealed partial class Demo : Page
        {
            public Demo()
            {
                this.InitializeComponent();
            }
    
            private async void btnShowDialog_Click(object sender, RoutedEventArgs e)
            {
                ContentDialog dialog = new ContentDialog()
                {
                    Title = "dialog title", 
                    Content = "dialog content, dialog content, dialog content, dialog content, dialog content, dialog content, dialog content",
                    FullSizeDesired = true,
                    PrimaryButtonText = "PrimaryButton",
                    SecondaryButtonText = "SecondaryButton"
                };
    
                dialog.PrimaryButtonClick += dialog_PrimaryButtonClick;
                dialog.SecondaryButtonClick += dialog_SecondaryButtonClick;
    
                // 弹出对话框,返回值为用户的选择结果
                /*
                 * ContentDialogResult.Primary - 用户选择了第一个按钮
                 * ContentDialogResult.Secondary - 用户选择了第二个按钮
                 * ContentDialogResult.None - 用户没有选择(按了系统的“返回”按钮)
                 */
                ContentDialogResult result = await dialog.ShowAsync();
                if (result == ContentDialogResult.Primary)
                {
                    lblMsg.Text += "选择了第一个按钮
    ";
                } 
                else if (result == ContentDialogResult.Secondary)
                {
                    lblMsg.Text += "选择了第二个按钮
    ";
                }
                else if (result == ContentDialogResult.None)
                {
                    lblMsg.Text += "没有选择按钮
    ";
                }
            }
    
            void dialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
            {
                lblMsg.Text += "点击了第一个按钮
    ";
            }
    
            void dialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
            {
                lblMsg.Text += "点击了第二个按钮
    ";
            }
    
    
            // 弹出自定义对话框
            async private void btnShowCustomDialog_Click(object sender, RoutedEventArgs e)
            {
                // 实例化自定义对话框
                CustomContentDialog contentDialog = new CustomContentDialog();
    
                // 弹出对话框,返回值为用户的选择结果
                /*
                 * ContentDialogResult.Primary - 用户选择了第一个按钮
                 * ContentDialogResult.Secondary - 用户选择了第二个按钮
                 * ContentDialogResult.None - 用户没有选择(按了系统的“返回”按钮)
                 */
                ContentDialogResult result = await contentDialog.ShowAsync();
                if (result == ContentDialogResult.Primary)
                {
                    lblMsg.Text += "选择了第一个按钮
    ";
                }
                else if (result == ContentDialogResult.Secondary)
                {
                    lblMsg.Text += "选择了第二个按钮
    ";
                }
                else if (result == ContentDialogResult.None)
                {
                    lblMsg.Text += "没有选择按钮
    ";
                }
            }
        }
    }

     
    3、MapControl
    MapControlDemo.xaml

    <Page
        x:Class="Demo.Control.MapControlDemo"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Demo.Control"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
        
        xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps">
    
        <Grid>
            <StackPanel Orientation="Vertical">
    
                <TextBlock TextWrapping="Wrap">
                    <Run>MapControl - 又一个地图控件(Windows.UI.Xaml.Controls.Maps.MapControl)</Run>
                    <LineBreak />
                    <Run>这个地图控件更灵活一些,其支持通过 tile 来显示地图,tile 的来源可以有三种,分别是:HttpMapTileDataSource, LocalMapTileDataSource, CustomMapTileDataSource</Run>
                </TextBlock>
    
            </StackPanel>
        </Grid>
    </Page>

    MapControlDemo.xaml.cs

    /*
     * MapControl - 又一个地图控件(Windows.UI.Xaml.Controls.Maps.MapControl)
     * 
     * 这个地图控件更灵活一些,其支持通过 tile 来显示地图,tile 的来源可以有三种,分别是:HttpMapTileDataSource, LocalMapTileDataSource, CustomMapTileDataSource
     * 
     */
    
    using Windows.UI.Xaml.Controls;
    
    namespace Demo.Control
    {
        public sealed partial class MapControlDemo : Page
        {
            public MapControlDemo()
            {
                this.InitializeComponent();
            }
        }
    }



    OK
    [源码下载]

  • 相关阅读:
    oracle误删数据的解决方法
    log4j配置详解
    Sprint + mybatis 编写测试
    关于项目报错Dynamic Web Module 3.0 requires Java 1.6 or newer 的解决方法
    js通过注册表找到本地软件安装路径并且执行
    启动项目的时候报驱动错误: not support oracle driver 1.0
    shiro权限管理
    搭建SpringBoot+dubbo+zookeeper+maven框架(四)
    搭建SpringBoot+dubbo+zookeeper+maven框架(三)
    搭建SpringBoot+dubbo+zookeeper+maven框架(二)
  • 原文地址:https://www.cnblogs.com/webabcd/p/4233963.html
Copyright © 2020-2023  润新知