如果一个页面中有很长的列表/内容,很多应用都会在用户向下滚动时隐藏页面的头,给用户留出更多的阅读空间,同时提供一个方便的吸顶工具栏,比如淘宝中的店铺页面. 下面是一个比较简单的实现,如果有同学有更好的实现,欢迎留言,让我们共同进步. 首先假设我们的页面整体包含3部分; 页面头:随页面滚动慢慢消失/重现 工具栏: 开始时随页面滚动,在页面头消失后,吸顶,固定不动 可滚动内容:一个listview 结构代码如下,为了区别清楚,我是用不同的背景色做区分: <Page x:Class="App3.…
前几天需要在UWP中实现吸顶,就在网上找了一些文章: 吸顶大法 -- UWP中的工具栏吸顶的实现方式之一 在UWP中页面滑动导航栏置顶 发现前人的实现方式大多是控制ListViewBase的Header变换高度,或者建立一个ScrollViewer在里面放置ListViewBase.经过测试,这两种方法或多或少的都有问题.所以我想试试用Composition API实现吸顶的效果. 首先先了解一下Composition API是什么. Windows.UI.Composition 是可以从任何通…
在上一篇中我们讨论了不涉及Pivot的吸顶操作,但是一般来说,吸顶的部分都是Pivot的Header,所以在此我们将讨论关于Pivot多个Item关联同一个Header的情况. 老样子,先做一个简单的页面,页面有一个Grid当Header,一个去掉了头部的Pivot,Pivot内有三个ListView,ListView设置了和页面Header高度一致的空白Header. <Page x:Class="TestListViewHeader.TestHeader2" xmlns=&q…
H5方法: //吸顶头部 .header{ width:100%; height:50px; position:fixed; top:0px; } //main滑动区域 .main{ width:100%; height:auto; position:absolute; padding-top:50px; padding-bottom:50px; box-sizing:border-box; overflow-y:scroll; } //吸底尾部 .footer{ width:100%; hei…
UWP中实现自定义标题栏 0x00 起因 在UWP开发中,有时候我们希望实现自定义标题栏,例如在标题栏中加入搜索框.按钮之类的控件.搜了下资料居然在一个日文网站找到了一篇介绍这个主题的文章: http://www.atmarkit.co.jp/ait/articles/1510/14/news022.html 看了下本想着翻译过来分享,但有些地方说的不是特别明确,所以自己实现了下,结合自己的体会总结了这篇文章. 0x01 UWP中的标题栏 一个普通的UWP窗口如下图所示: 我们可以通过两种方式获…
UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也没遇到麻烦.直到在园子里看到了这篇文章: http://www.cnblogs.com/gaoshang212/p/4534138.html 原来UWP的绑定中新加了个x:Bind,从文章中可以看到x:Bind的效率是很高的.找到MSDN(数据绑定)看了一下(完整的学习目录可参见: http://w…
从淘宝UWP第一版发布到现在,已经有十个月了,期间收到了用户各种各样的反馈,感谢这些用户的反馈,指导我们不断的修正.完善应用.但是也有一部分需求或建议,由于资源或技术的限制,目前确实无法做到,只能对广大Win10er说声抱歉了.下面针对几种用户常提到的反馈做下说明. 为什么在某某版本上,我无法运行淘宝UWP Windows RS2,与以前一样,有快速推送,慢速推送.有些用户愿意试新,选择了快速推送,比如最近的14905.但是,在Windows Insider快速推送的说明中,明确说明了快速推送可…
阅读目录: 概述 如何选择 System.Net.Http Windows.Web.Http HTTP的常用功能 修改http头部 设置超时 使用身份验证凭据 使用客户端证书 cookie处理 概述 作为一个Universal Windows Platform (UWP)开发者,如果你尝试使用http与web服务或其他服务端通讯时,有多个API可以选择. UWP中最常见并推荐使用的HTTP客户端API实现是System.Net.Http.HttpClient和Windows.Web.Http.H…
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ContactStore contactStore = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadOnly); IReadOnlyList<Contact> contacts = awa…
标题中提到的UWP,主要是指用C#来写UWP的主工程,开发过程中可能需要调用C/C++实现的库. 为什么需要调用C/C++的库呢,举个例子,开源库OpenSSL实现了许多加密算法,稳定快速,我们想在应用中调用:再比如,应用已经在iOS/Android平台上线并稳定运行了,我想把它们的库拿来给UWP版本用. 经过一些项目的实践,我总结了下图所示的几种集成方式: 图中红叉不代表此路不通,只是我们今天不讨论P/Invoke方式.我们今天主要通过WinRT来打通C#和C/C++之间的调用,因此,我们的选…
在淘宝UWP中,搜索结果列表是用户了解宝贝的重要一环,其中的图片效果对吸引用户点击搜索结果,查看宝贝详情有比较大的影响.为此手机淘宝特意在搜索结果列表上采用了2种表现方式:一种就是普通的列表模式,而另一种则是突出宝贝图片的瀑布流模式. 如果用户搜索某些关键字,如女装类的情况下,淘宝的搜索结果会自动切换到瀑布流模式,让宝贝的美图更加冲击用户的视觉. 但是UWP默认的列表控件并没有这种效果,listview控件中虽然子元素可以不一样大小,但是只能有1列,gridview控件虽然有多列,但每个子元素都…
在COM组件的使用和开发过程中经常需要获取有关组件的信息.而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取.通过访问类型库就可以查看COM组件的信息. 一.类型库的基础知识介绍: 1.类型库的定义: 类型库:在类型库中以二进制的形式描述了一个或多个对象的类型信息.具体的类型信息包括:组件的CLSID.所支持接口的IID.接口的成员函数及其参数和返回值类型等. TTypedComObject类: TTypedComObject类及其派生类提供了对类型库的支持.COM…
c# winform 中的 工具栏自动隐藏 splitter用法 带源码 代码下载地址 http://download.csdn.net/detail/simadi/7649313…
前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Entity Framework Core(Entity Framework 7)下文将简称:EF 1.在UWP中使用EF需要更新Microsoft.NETCore.UniversalWindowsPlatform到大于“5.2.2”的版本. 2.直接在“程序包管理器控制台”输入命令来更新:Update-P…
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLite PCL 之类的库,前者是 SQLite 引擎库,而后者则提供了用于操作数据库的 API ,不过自从 Windows Fall Creators Update 之后,我们有了新的选择. 由于 UWP 在其 Windows Fall Creators Update SDK 中增加对 .NET Sta…
Xaml作为一种描述语言,在编程中极大地简化了页面开发的繁琐及时间消耗,这得益于它的多种特性:数据绑定.动画.资源文件等等.标记扩展作为其一个特性,在xaml中有不可替代的作用,今天分析下自定义标记扩展怎么实现. 做过WPF项目的可能比较熟悉,自定义标记扩展继承MarkupExtension并实现其ProvideValue方法,即可实现.但是在UWP中,有些许区别. 项目的最低官方支持版本为:Windows 10 Fall Creators Update (introduced v10.0.16…
WPF 中的 Expander 控件在 Windows 10 SDK 中并不提供,本文主要说明,如何在 UWP 中创建这样一个控件.其效果如下图: 首先,分析该控件需要的一些特性,它应该至少包括如下三个属性: Content: 最重要的属性,设置该属性,可以使 Expander 控件显示其内容: Header: 控件的 Header: IsExpand: 当前是否展开. 接下来是定义其 UI,在这里使用 Grid,添加两行,一行显示 Header,一行显示 Content,当 IsExpand…
JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念 <html> <body> <script type="text/javascript"> //JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释 myname = "global"; // global variable function func() { //var myname; // 等同于 -&g…
在 UWP 中使用 CommandBar 来迅速添加一组功能按钮是非常迅速的,是 UWP 中推荐的交互方案之一.也许你能见到 CommandBar 按你所需向下展开,不过可能更多数情况会看到 CommandBar 的展开方向是向上的. 本文将解释 CommandBar 的展开方向逻辑,并且提供多种方法来解决它展开方向的问题. 本文内容 为什么我们需要更改 CommandBar 的展开方向? 将 CommandBar 改为向下展开的几种方法 方法一:使用 Page.TopAppBar 属性 方法二…
无论是 WPF 还是 UWP 开发,如果用 Storyboard 和 Animation 做动画,我们多数时候都会设置 From 和 To 属性,用于从起始值动画到目标值.然而动画并不总是可以静态地指定这些值,因为更多的时候动画的起始值和目标值取决于当前 UI 的状态. 本文中,我将将尽量避免设置 From 和 To 值,让动画可以随时中断并重新开始,而中途不会出现突兀的变化. 本文涉及到的代码均在 GitHub 上以 MIT License 开源:walterlv/sharing-demo a…
跟图片打交道的 UWP 应用或多或少都会遇到图片带来的性能问题,就算不主要处理图片,做个论坛做个新闻客户端都涉及到大量图片.一个帖子.一篇文章里多半都是些高清大图,这些图片一张即可占用程序 1~2M 的内存空间.普通的写法内存很快就爆了,那么 UWP 中我们可以用哪些方法优化呢? 1. DecodePixelWidth/DecodePixelHeight 对于那些高分辨率图像,直接设置其 DecodePixelWidth 和 DecodePixelHeight 的值为较小的值即可大大节省内存空间…
原文 UWP 中的各种文件路径(用户.缓存.漫游.安装……) UWP 提供了多种不同文件路径访问方式,对应到不同的文件路径中.可能我们只是简单用 ApplicationData.Current 获取一下可以读写的路径便能应付我们应用日常所需的各种文件读写需求,不过,UWP 还提供了更多的路径选项. 本文将和你一起总结 UWP 中的各种各样的路径. 本文内容 UWP 中的路径种类 ApplicationData Package.InstalledLocation 特殊文件夹 UWP 中的路径种类…
原文 Customize Acrylic Brush in UWP Applications(在UWP中自定义亚克力笔刷) Windows 10 Fall Creators Update(Build 16299)添加了acrylic brush,这是一个类似于Windows 7 Aero效果的UI画笔. Windows中的很多内容,例如Calculator,都会使用丙烯画笔进行更新.但是,内置刷子并不总能满足我们自己的要求.特别是当Windows自动禁用丙烯酸渲染(如低功耗模式)或非活动窗口时,…
原文:[UWP-小白日记16]UWP中的3D变换API 还没开始 好久没写博客了,再来开坑. 正文 Transform3D:“这个和CSS的3D好像的说” PerspectiveTransform3D:这个用来指定容器是否具有3D空间,都是放在根容器下面的. 注意Depth:默认1000,如过设置过大会导致子元素超出容器 <Grid Background="{StaticResource ProcurePageBackground}"> <Grid.Transform…
原文:UWP中String类型如何转换为Windows.UI.Color 我在学习过程中遇到的,我保存主题色为string,但在我想让StatusBar随着主题色变化时发现没法使用. ThemeColorHelper tc = new ThemeColorHelper(); StatusBar statusbar = StatusBar.GetForCurrentView(); statusbar.BackgroundColor = (Color)tc.ThemeColor; statusbar…
不管什么平台,应用内难免会出现一些消息提示框,下面就来聊聊我在UWP里用到的消息提示框. 弹窗也可按是否需要用户操作促发一些逻辑进行分为两大类. 不需要用户干涉的一类: MessageDialog:操作简单,写起来也省事,想具体了解的请参考MSDN 先看看效果 PC上效果: mobile上效果: 再看看代码(●'◡'●) 前台: <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" >…
在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统Toast通知方式(和Android的Toast是有区别的额,更像Android里的Notification),关于这种方式,在这里就不贴代码了,MSDN上讲的很清楚(快速入门:发送 Toast 通知),需要注意的事作为应用内消息提示弹出框,应该不要带音效(有特殊需求貌似也行),但是,Toast通知会在…
原文:UWP开发-在UWP中使用sqlite sqlite是一种轻量级的数据库,对于一些资源紧张又需要数据库的开发非常好用. SQLite 是一个开源的无服务器嵌入式数据库. 这些年来,它已作为面向存储在许多平台和设备上的数据的主要设备端技术出现. 通用 Windows 平台 (UWP) 支持并建议使用 SQLite 实现跨所有 Windows 10 设备系列的本地存储. SQLite 最适用于手机应用.面向 Windows 10 IoT 核心版(IoT 核心版)的嵌入式应用程序,以及作为企业关…
2020年1月17日更新: nightly build 版本已发布 https://www.myget.org/feed/exceptionless/package/nuget/Exceptionless 2020年1月16日更新: PR 已合并了,等待官方发布新的 nuget 包 2020年1月10日更新: clone 官方源码调了一下找到问题所在了,UWP 的 release 模式下, Assembly.GetCallingAssembly() 不可用导致,已给 Exceptionless…
strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值 * 如果一个属性在对象栈,在页面上可以根据name属性进行回显 */ /** * 属性驱动实现的条件: * 1.当前请求的action在栈顶,所以action中的属性就暴漏出来了 * 2.获取页面上表单的元素,整合成一个map * 3.调用setValue方法赋值 */ package cn.itcast.struts2.sh;…