[源码下载]

与众不同 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 += "选择了第一个按钮\n";
}
else if (result == ContentDialogResult.Secondary)
{
lblMsg.Text += "选择了第二个按钮\n";
}
else if (result == ContentDialogResult.None)
{
lblMsg.Text += "没有选择按钮\n";
}
} void dialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
lblMsg.Text += "点击了第一个按钮\n";
} void dialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
lblMsg.Text += "点击了第二个按钮\n";
} // 弹出自定义对话框
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 += "选择了第一个按钮\n";
}
else if (result == ContentDialogResult.Secondary)
{
lblMsg.Text += "选择了第二个按钮\n";
}
else if (result == ContentDialogResult.None)
{
lblMsg.Text += "没有选择按钮\n";
}
}
}
}

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
[源码下载]

与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl的更多相关文章

  1. 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout

    [源码下载] 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout 作者:webabcd 介绍与众不同 windows ...

  2. 与众不同 windows phone (51) - 8.1 新增控件: DatePickerFlyout, TimePickerFlyout

    [源码下载] 与众不同 windows phone (51) - 8.1 新增控件: DatePickerFlyout, TimePickerFlyout 作者:webabcd 介绍与众不同 wind ...

  3. 与众不同 windows phone (52) - 8.1 新增控件: AutoSuggestBox, ListView, GridView, SemanticZoom

    [源码下载] 与众不同 windows phone (52) - 8.1 新增控件: AutoSuggestBox, ListView, GridView, SemanticZoom 作者:webab ...

  4. Windows 8.1 应用再出发 - 几种新增控件(1)

    Windows 8.1 新增的一些控件,分别是:AppBar.CommandBar.DatePicker.TimePicker.Flyout.MenuFlyout.SettingsFlyout.Hub ...

  5. Windows 8.1 应用再出发 - 几种新增控件(2)

    本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink. 1. Flyout Flyout被称为 ...

  6. Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)

    上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand.BackButton.Hub.ItemContainer,本篇我们接着来介绍 NavBar.Repea ...

  7. 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar

    [源码下载] 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  8. 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker

    [源码下载] 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 作者:webabcd 介绍重新想象 Windows 8.1 ...

  9. 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout

    [源码下载] 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout 作者:webabcd 介绍重新想象 ...

随机推荐

  1. 图像拼接 SIFT资料合集

    转自 http://blog.csdn.net/stellar0/article/details/8741780 分类: 最近也注意一些图像拼接方面的文章,很多很多,尤其是全景图拼接的,实际上类似佳能 ...

  2. 【C】——幻方算法

    一.幻方按照阶数可分成了三类,即奇数阶幻方.双偶阶幻方.单偶阶幻方. 二.奇数阶幻方(劳伯法) 奇数阶幻方最经典的填法是罗伯法.填写的方法是: 把1(或最小的数)放在第一行正中:按以下规律排列剩下的( ...

  3. 15.6.8-sql小技巧

    取月头月尾: declare @someDay datetime,@firstDay datetime,@endDay datetime set @someDay='2015.2.2' ,) ,) s ...

  4. 【转】 IOS开发xcode报错之has been modified since the precompiled header was built

    本文转载自  IOS开发xcode报错之has been modified since the precompiled header was built 其实我是升级xcode到4.6.3的时候遇到的 ...

  5. CLR VIA

     标题  状态  内容 什么是CLR? 什么是托管模块? 托管模块由什么组成? .net代码的执行过程   http://www.cnblogs.com/aaa6818162/p/4726581.ht ...

  6. SQL语句 - 数据操作

    表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化.因此如果查询语句不需要索引,就应该删除无用的索引以提高效率. 一.INSERT语句 1.基本插入语句 insert用于向表中输入数据,其具体 ...

  7. Invalid Image Path - No image found at the path referenced under key "CFBundleIconFile": Icon.png

    I got the same error when uploading my app. Moving all icon files to the Asset Catalog works if your ...

  8. 使用IntelliJ IDEA 14和Maven创建java web项目

    参考地址 http://www.cnblogs.com/jifeng/p/4658765.html

  9. wordpress表结构

    WordPress仅仅用了10 个表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, ...

  10. Android 模拟器 获得 root权限

    启动一个模拟器,开始-运行-输入cmd,打开dos,依次输入 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system ...