Windows Phone 8.1 控件

如果你已经开始了 Windows Phone 8.1 的学习,就会发现许多在 8.0 下的控件在 8.1 中都发生了变化,以下就谈谈几个 8.1
下的新控件以及与 8.0 控件的改变。

1. TextBox, AutoSuggestBox

TextBox 终于有了 Header 属性,再也不用为 TextBox 写一堆 TextBlock
了。

<TextBox Header="TextBoxWithHeader"/>

当某些控件没有 Header 属性的时候,可以将 TextBlock 的 Style 绑定为
ControlHeaderTextBlockStyle,这样就可以与 TextBox 的 Header 样式相同了。

<TextBlock Text="TextBoxWithoutHeader" Style="{StaticResource ControlHeaderTextBlockStyle}"/>
<RadioButton Content="RadioButton"/>

界面为这样:

AutoSuggestBox 的使用则只需绑定 ItemsSource。

XAML:


<AutoSuggestBox x:Name="autoBox"
Header="AutoSuggestBox"
GotFocus="autoBox_GotFocus"
TextChanged="autoBox_TextChanged">
<AutoSuggestBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>

C#:


List<string> suggestions = new List<string>(){ "S1", "S2", "S3", "U1", "U2", "U3" };

private void autoBox_GotFocus(object sender, RoutedEventArgs e)
{
autoBox.ItemsSource = suggestions;
}

private void autoBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
string filter = sender.Text.ToUpper();
autoBox.ItemsSource = suggestions.Where(s => s.ToUpper().Contains(filter));
}

界面为这样:

2. MessageDialog, ContentDialog

刚学 8.1 遇到的第一个问题就是 MessageBox 不见了,其实它只是换成了
MessageDialog。

private async void messageDialogButton_Click(object sender, RoutedEventArgs e)
{
MessageDialog messageDialog = new MessageDialog("MessageBox --> MessageDialog", "MessageDialog");
await messageDialog.ShowAsync();
}

界面:

ContentDialog 则可以设置为部分或者全屏,或者直接在项目里新建一个
ContentDialog。


private async void partialDialogButton_Click(object sender, RoutedEventArgs e)
{
ContentDialog contentDialog = new ContentDialog();
contentDialog.FullSizeDesired = false;
contentDialog.Title = "Partial ContentDialog";
contentDialog.Content = "Partial";
await contentDialog.ShowAsync();
}

private async void fullDialogButton_Click(object sender, RoutedEventArgs e)
{
ContentDialog contentDialog = new ContentDialog();
contentDialog.FullSizeDesired = true;
contentDialog.Title = "Full ContentDialog";
contentDialog.Content = "Full";
await contentDialog.ShowAsync();
}

private async void customDialogButton_Click(object sender, RoutedEventArgs e)
{
CustomDialog customDialog = new CustomDialog();
await customDialog.ShowAsync();
}

界面:

Dialog 的显示都为异步方法。

3. Button

Button.Flyout.Flyout


<Button Content="Button.Flyout.Flyout"
HorizontalAlignment="Center">
<Button.Flyout>
<Flyout>
<StackPanel HorizontalAlignment="Center">
<TextBlock Text="Button.Flyout"
FontSize="40"/>
<Button Content="OK"
HorizontalAlignment="Center"/>
</StackPanel>
</Flyout>
</Button.Flyout>
</Button>

界面:

Button.Flyout.MenuFlyout


<Button Content="Button.Flyout.MenuFlyout"
HorizontalAlignment="Center">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="MenuFlyoutItem"/>
<ToggleMenuFlyoutItem Text="ToggleMenuFlyoutItem"/>
</MenuFlyout>
</Button.Flyout>
</Button>

界面:

4. BottomBar

之前的 ApplicationBar 更换成了 BottomAppBar。


<Page.BottomAppBar>
<CommandBar>
<CommandBar.PrimaryCommands>
<AppBarButton Icon="Accept" Label="Accept"/>
<AppBarButton Icon="Cancel" Label="Cancel"/>
</CommandBar.PrimaryCommands>
<CommandBar.SecondaryCommands>
<AppBarButton Icon="Help" Label="Help"/>
</CommandBar.SecondaryCommands>
</CommandBar>
</Page.BottomAppBar>

界面:

5. StatusBar

之前的 SystemTray 更改为 StatusBar,并且只能通过 C# 代码控制,不能用
XAML 控制。


private async void Button_Click(object sender, RoutedEventArgs e)
{
Windows.UI.ViewManagement.StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
await statusBar.HideAsync();
}

界面:

时间: 2024-11-05 22:39:50

Windows Phone 8.1 控件的相关文章

Windows 8.1 新控件和功能:

将 XAML 树呈现为位图: 适用于 Windows 8.1 的 Windows 运行时为 Windows.UI.Xaml.Media.Imaging 命名空间添加了一种新类型:RenderTargetBitmap. 此类型提供了两个关键方法: RenderTargetBitmap.RenderAsync,用于提取 XAML 可视化树 并为其创建位图表示. 注意  此操作采用异步方式,将给定的 XAML 元素树呈现为位图. 此方法与屏幕刷新不同步,不能保证精确的帧计时,因此该位图可能在假定捕获时

深入Windows窗体原理及控件重绘技巧

之前有学MFC的同学告诉我觉得Windows的控件重绘难以理解,就算重绘成功了还是有些地方不明白,我觉得可能很多人都有这样的问题,在这里我从Windows窗体的最基本原理来讲解,如果你有类似的疑惑希望这篇文章可以帮你解惑. 1.Windows窗体原理 首先,如果看过Win32 SDK编程的都知道Windows的三大核心系统:负责窗口对象产生和消息分发的USER模块,负责图像显示绘制的GDI模块,负责内存.进程.IO管理的KERNEL模块.试想象一下如何在一个像素阵列上产生窗口对象,其实就是使用G

[深入浅出Windows 10]分屏控件(SplitView)

4.18 分屏控件(SplitView) 分屏控件(SplitView)是Windows 10新增的控件类型,也是Windows 10通用应用程序主推的交互控件,通常和一个汉堡按钮搭配作为一种抽屉式菜单来进行呈现.控件的XAML语法如下: <SplitView> <SplitView.Pane > ……菜单面板的内容 </SplitView.Pane > ……主体内容 </SplitView> SplitView控件主要由两部分组成,一部分是菜单的面板,另一

Windows Phone - 按钮/button 控件

System.Windows.Controls.Button   button控件一.button控件的各种样式的展示可以通过 …… 来给控件定义公共的样式调用样式的方法:在Button控件上添加样式的属性 Style="{StaticResource ButtonStyle1}" Margin属性定义了Button控件的相对整体界面的于左上右下的距离.Height控件的高度Width控件的宽度Content控件显示的内容Click单击触发的事件HorizontalAlignment水

总结Windows Phone的所有控件

Border Button Canvas CheckBox ContentControl DrawingSurface DrawingSurfaceBackgroundGrid Ellipse Grid HyperlinkButton Image LongListSelector Map MediaElement Panorama PanoramaItem PasswordBox Pivot PivotItem ProgressBar RadioButton Rectangle ScrollVi

Java通过Ole调用Windows Media Player,部分控件属性调用方法

其实Java并不擅长做这类开发和研究,尤其是媒体影音是Java的弱项.但是为了项目,只能丧心病狂了. 起初在网络上找到了一个可行的调用类,并有一个调用实例,相信有过这方面经验都有下载过,文件名就叫WMP.但是这个还不能满足我现在做的这个项目的功能需求,里面缺少很多官方文档的空间属性方法,其中就包含我需要的. 最开始的解决方法是在网络上载找找看,希望能找到完整的类包,但是相关的资源都是大家炒来炒去,都一样,没有带来什么帮助,久寻未果就放弃了. 其后有看到c++调用Windows Media Pla

Windows Phone 7 LongListSelector控件实现分类列表和字母索引

在wp7手机里面的联系人列表和程序里面里面我们可以看到一个根据字母索引来定位联系人或者应用程序的控件,那么这个控件就是LongListSelector控件了. LongListSelector是一种比ListBox更加强大的列表控件,你可以根据你列表的信息来分类排列,根据类别快速定位到你选中的类别的列表下,在数据量很大的情况下这种分类的优势很明显.LongListSelector可以自定义列表头,列表尾.类表头.列别尾等的样式和数据,可以实现各种个性化的列表样式和不同的数据的展现方式.Windo

[Windows Phone] 网页浏览控件(WebBrowser)

本文章示范如何在 Windows Phone 应用程序中使用 WebBrowser 控件,并运用 Navigate 和 WebBrowserTask 方法来指定网页并浏览网页. 前言 本文章示范如何在 Windows Phone 应用程序中使用 WebBrowser 控件,并运用 Navigate 和 WebBrowserTask 方法来指定网页并浏览网页. 实践 step1 建立项目 step2 画面设计 Button 控件:Name = btn1, Content = UU的博客 Butto

【Windows编程】系列第二篇:Windows SDK创建基本控件

在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际上MFC的下层也是通过这些API完成的. 实际上控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类.既然控件实际上是窗口,当然也是用CreateWindow或者CreateWindowEx这个函数来完成的,第二个函数除了多一个扩展风格之外,其他完全

Windows UWP开发系列 – 控件默认样式

今天用一个Pivot控件的时候,想修改一下它的Header样式,却发现用Blend和VS无法导出它的默认样式了,导致无法下手,不知道是不是Blend的bug. 在网上搜了一下,在MSDN上还是找到了它的默认样式的,位置如下:https://msdn.microsoft.com/en-us/library/windows/apps/mt299142.aspx.其它的控件默认样式这个地址上也有,如果有需要的可以查询一下.