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

简介: 原文:Windows 8.1 应用再出发 - 几种新增控件(2)本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout、MenuFlyout、SettingsFlyout、Hub 和 Hyperlink。
原文: Windows 8.1 应用再出发 - 几种新增控件(2)

本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout、MenuFlyout、SettingsFlyout、Hub 和 Hyperlink。

1. Flyout

 Flyout被称为浮出控件,能起到提示或者简单交互作用。我们可以利用它来要求用户确认操作、收集用户输入信息或显示提示信息等。只有当用户点击时才显示Flyout,当点击外部任意点时,Flyout消失。

Flyout通常会附加到Button上,所以Button拥有Flyout属性来简化附加和使用的过程。

            <Button Content="Delete it">
                <Button.Flyout>
                    <Flyout>
                        <StackPanel>
                            <TextBlock>This item will be deleted. Do you want to continue ?</TextBlock>
                            <Button Click="DeleteConfirmation_Click">Yes, delete it.</Button>
                        </StackPanel>
                    </Flyout>
                </Button.Flyout>
            </Button>

如上图所示,我们为Button附加了Flyout控件,当Button点击时,Flyout出现。当点击外部任意点时,Flyout消失。当然其他控件也能使用Flyout控件,这就需要使用FlyoutBase.AttachedFlyout附加属性。这时我们必须响应控件的交互操作,并在代码中控制打开Flyout。

            <TextBlock Text="Tap me to show flyout." Tapped="TextBlock_Tapped" FontSize="20">
                <FlyoutBase.AttachedFlyout>
                    <Flyout>
                        <TextBlock FontSize="18" Text="You can do something..."/>
                    </Flyout>
                </FlyoutBase.AttachedFlyout>
            </TextBlock>

下面是TextBlock的Tapped事件处理

        private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e)
        {
            TextBlock tb = sender as TextBlock;
            if (tb != null)
            {
                FlyoutBase.ShowAttachedFlyout(tb);
            }
        }

 

2. MenuFlyout

 MenuFlyout被称为菜单浮出控件,能够浮出显示菜单。大家看名字就能猜出,MenuFlyout 和 Flyout的用法很相似,可参照我们刚刚介绍的Flyout例子。而不同就在于MenuFlyout可以通过MenuFlyoutItem、ToggleMenuFlyoutItem 和 MenuFlyoutSeparator轻松定义菜单内容。

  • MenuFlyoutItem —— 执行即时操作
  • ToggleMenuFlyoutItem —— 打开或关闭选项
  • MenuFlyoutSeparator —— 菜单项之间的分隔符

我们下面以Button为例来演示MenuFlyout的用法

            <Button Content="Text Format">
                <Button.Flyout>
                    <MenuFlyout>
                        <MenuFlyoutItem Text="Reset" Click="Reset_Click"/>
                        <MenuFlyoutSeparator/>
                        <ToggleMenuFlyoutItem Text="TextWrap" IsChecked="True"/>
                        <ToggleMenuFlyoutItem Text="TextTrim" IsChecked="False"/>
                    </MenuFlyout>
                </Button.Flyout>
            </Button>

 

3. SettingsFlyout

 SettingsFlyout被称为设置浮出控件,利用它我们可以更轻松的创建应用设置的浮出控件。用户可以通过“设置”超级按钮来访问设置浮出控件,或触发我们定义的事件来访问。下面我们来演示如何通过触发事件的方式来访问SettingsFlyout。

首先,新建一个SettingsFlyout控件,步骤是:添加新建项 -> 在对话框中,选择““设置”浮出控件” -> 设置名称为 AutoplaySettingsFlyout。

<SettingsFlyout
    x:Class="HelloWorld.AutoplaySettingsFlyout"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HelloWorld"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    IconSource="Assets/SmallLogo.png"
    Title="Autoplay"
    d:DesignWidth="346" Width="346">

    <!-- 此 StackPanel 充当内容部分的垂直布局的根面板-->
    <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
        <!-- 下列 StackPanel 定义个别内容部分-->
        <!-- 第 1 部分内容-->
        <StackPanel Style="{StaticResource SettingsFlyoutSectionStyle}">
            <!-- 第 1 部分标题-->
            <TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="Automatic plays" />
            <!-- 第 1 部分正文-->
            <TextBlock Style="{StaticResource BodyTextBlockStyle}" Margin="0,0,0,25" TextWrapping="Wrap">
                <TextBlock.Text>
                    Turn automatic playing on or off.
                </TextBlock.Text>
            </TextBlock>
            <ToggleSwitch Header="play automatically" />
        </StackPanel>
        <!-- 根据需要在下面定义更多内容部分-->
    </StackPanel>
</SettingsFlyout>

如上面代码和效果图所示,SettingsFlyout控件可以调整宽度和背景色,但高度一般是应用的高度。头部中包括了标题,回退按钮和应用图标。内容部分采用的是StackPanel流式布局。下面我们看看怎么把它添加到“设置”的窗体中。

        public MainPage()
        {
            this.InitializeComponent();
            Windows.UI.ApplicationSettings.SettingsPane.GetForCurrentView().CommandsRequested += MainPage_CommandsRequested;
        }

        void MainPage_CommandsRequested(Windows.UI.ApplicationSettings.SettingsPane sender, Windows.UI.ApplicationSettings.SettingsPaneCommandsRequestedEventArgs args)
        {
            Windows.UI.ApplicationSettings.SettingsCommand updateSetting =
                new Windows.UI.ApplicationSettings.SettingsCommand("AppUpdateSettings", "Auto Play", (handler) =>
                {
                    AutoplaySettingsFlyout autoplayFlyout = new AutoplaySettingsFlyout();
                    autoplayFlyout.Show();

                });

            args.Request.ApplicationCommands.Add(updateSetting);
        }

这样我们就把SettingsFlyout控件添加到“设置”中了,名字是'Auto Play',下面我们看看怎么通过按钮点击的方式来访问它。

        <Button Content="App update settings" Click="AutoplaySettingsButton_Click"/>
        private void AutoplaySettingsButton_Click(object sender, RoutedEventArgs e)
        {
            AutoplaySettingsFlyout autoplayFlyout = new AutoplaySettingsFlyout();
            autoplayFlyout.Show();
        }

通过按钮点击事件,我们调用了SettingsFlyout控件的Show方法,这样控件就可以访问了。当控件中的回退按钮点击后,浮出控件关闭并重新打开设置窗体。

如果我们调用的是ShowIndependent方法,回退按钮点击后,浮出控件关闭并回到应用中。同时我们也可以通过调用控件的Hide方法来关闭浮出控件,效果和回退按钮点击类似。

需要注意的是,一次只能显示一个浮出控件,调用Show/ShowIndependent 方法显示会关闭当前其他浮出控件。

 

4. Hub

中心控件,帮助我们更好的实现“中心”设计模式,中心页是用户进入应用的入口点,比如说应用商城。用户进入应用商城后,看到的类别分类就是中心的实现,它可以在横向或纵向的滚动视图中显示丰富而有序的内容。 

Hub的Header属性可以设置中心的标题,可以设置Header或HeaderTemplate来实现。

Hub可以分区显示,通过将不同的内容放入不同的HubSection来实现。HubSection也可以设置标题,做法与Hub一致。如果HubSection的IsHeaderInteractive属性为true,那么标题默认包含 '>' 字型,以及悬停和按下状态。我们来看看代码实现

        <Hub Header="Movies">
            <HubSection MinWidth="600" Header="Latest">
                <DataTemplate>
                    <Grid>
                        <TextBlock Text="The most recent movies will be here." 
                           Style="{ThemeResource BodyTextBlockStyle}" />
                    </Grid>
                </DataTemplate>
            </HubSection>

            <HubSection Header="Comedy" IsHeaderInteractive="True"  
                Background="#222222" MinWidth="250">
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="Comedy movies goes here."
                           Style="{ThemeResource BodyTextBlockStyle}" />
                        <TextBlock Text="Click the header to go to the Comedy page."
                           Style="{ThemeResource BodyTextBlockStyle}" />
                    </StackPanel>
                </DataTemplate>
            </HubSection>

            <HubSection Header="Action" IsHeaderInteractive="True" 
                Background="#444444" MinWidth="250">
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="Action movies goes here."
                           Style="{ThemeResource BodyTextBlockStyle}" />
                        <TextBlock Text="Click the header to go to the Action movies." 
                           Style="{ThemeResource BodyTextBlockStyle}" />
                    </StackPanel>
                </DataTemplate>
            </HubSection>
        </Hub>

 

5. Hyperlink

超链接,我们可以把它添加到文本上,它和文本具有相同的处理方式,换行、截断等。当文本被标记为超链接后,文本会显示为特定的颜色,点击文本会转到指定的URI,这个URI由NavigateUri属性来指定。

            <RichTextBlock Width="400" FontSize="20">
                <Paragraph>Hyperlinks let you give readers a visual hint that certain text links to other content.
                    <Hyperlink NavigateUri="http://dev.windows.com">Read more on the Windows Dev Center</Hyperlink>
                    ... Text in a Hyperlink element is treated like the rest of the text and participates in line breaking.
                </Paragraph>
            </RichTextBlock>

如上图所示,紫色文字部分为超链接,点击后会跳转到我们指定的NavigateUri。

 

这样我们就把Windows 8.1 的新增控件介绍完了,希望对大家有所帮助,谢谢。

目录
相关文章
|
1天前
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
11 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
23天前
|
XML 缓存 前端开发
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
94 0
|
1月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
40 0
|
3月前
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
|
3月前
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
65 0
|
3月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
55 0
|
3月前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
98 0
|
Windows
Windows 8.1 新增控件之 Hyperlink
原文:Windows 8.1 新增控件之 Hyperlink Hyperlink 控件应该不用过多介绍大家肯定十分清楚其作用,它的功能就像HTML中的标签一样,只不过是在XAML中实现。 使用Hyperlink 标记的文字在应用中会以特殊颜色显示,当用户点击或触碰该文字时就会自动转到NavigateUri 指向的地址链接。
780 0
|
1天前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
下一篇
无影云桌面