2018-2-13-win-10-UWP-标签
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
win 10 UWP 标签
|
lindexi
|
2018-2-13 17:23:3 +0800
|
2018-2-13 17:23:3 +0800
|
UWP
|
本文主要翻译:http://visuallylocated.com/post/2015/02/20/Creating-a-WrapPanel-for-your-Windows-Runtime-apps.aspx http://depblog.weblogs.us/2015/02/18/how-to-add-a-tag-list-into-winrt-universal-apps/
我们需要给用户很多标签,我们需要使用一个控件,他的长度是变化,可以快速放,这样好像wrapPancel就是我们需要,因为这个我直接写如果看起来不懂,可以看
我们点添加就会添加标签,我们删除标签就很快排版。
我们使用RichBox,这个可以做我们标签
源代码因为作者写的和UWP不一样,我改UWP,放在https://github.com/lindexi/TagList
运行效果
点击按钮
删除
软件使用,先add
跳到让用户选择,这里如果让用户输入,使用有点难,可以使用用户在跳转输入,输入自动变为预设一样
源.Add(new Tag() {Id = "id",Label = "用户输入"});
选择标签,选择完成保存
可以看到首页
标签使用在跳转MainPage
if (e.NavigationMode == NavigationMode.Back)
我们把选择保存
General.GetInstance().TagSelection
在SetTags是本算法的主要
我们搜索全部新加和被删除
var tagParagraph = (Paragraph) (from paragraph in TagRichTextBlock.Blocks
where paragraph.Name.StartsWith("Tags")
select paragraph).FirstOrDefault(); var tagIds = from tag in General.GetInstance().TagSelection.Tags
select tag.Id; var buttonsToRemove = from item in tagParagraph.Inlines.Cast<InlineUIContainer>()
where !tagIds.Contains(((Button) item.Child).Name)
select item; foreach (InlineUIContainer container in buttonsToRemove)
tagParagraph.Inlines.Remove(container);
IEnumerable<string> buttonIds = from item in tagParagraph.Inlines.Cast<InlineUIContainer>()
select ((Button) item.Child).Name; IEnumerable<Tag> tagsToAdd = from item in General.GetInstance().TagSelection.Tags
where !buttonIds.Contains(item.Id)
select item; foreach (Tag tag in tagsToAdd)
{
InlineUIContainer container = new InlineUIContainer();
RichTextBlock inlineRichTextBlock = new RichTextBlock()
{
IsTextSelectionEnabled = false
};
Paragraph inlineParagraph = new Paragraph();
inlineParagraph.Inlines.Add(new Run()
{
Text = string.Format("{0} ", tag.Label),
FontSize = 14
});
inlineParagraph.Inlines.Add(new Run()
{
Text = "\uE106",
FontFamily = new FontFamily("Segoe UI Symbol"),
FontSize = 10
});
inlineRichTextBlock.Blocks.Add(inlineParagraph); Button tagButton = new Button()
{
Content = inlineRichTextBlock,
Style = (Style) Application.Current.Resources["TagButtonStyle"],
Name = tag.Id
};
tagButton.Click += OnTagButtonClicked;
container.Child = tagButton; tagParagraph.Inlines.Add(container);
}
点击删除按钮,删除id
string tagId = ((Button) sender).Name;
General.GetInstance()
.TagSelection.Tags.Remove(General.GetInstance().TagSelection.Tags.Single(item => item.Id.Equals(tagId)));
SetTags();
2018-2-13-win-10-UWP-标签的更多相关文章
- Win 10 UWP开发系列:设置AppBarButton的图标
在WP8以前,页面最下面的四个小圆按钮是不支持绑定的,WP8.1 RT之后,系统按钮升级成了AppBarButton,并且支持绑定了.在Win10 UWP开发中,按钮的样式发生了变化,外面的圆圈没有了 ...
- Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构
分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
- 【Win 10 应用开发】导入.pfx证书
这个功能其实并不常用,一般开发较少涉及到证书,不过,简单了解一下还是有必要的. 先来说说制作测试证书的方法,这里老周讲两种方法,可以生成用于测试的.pfx文件. 产生证书,大家都知道有个makecer ...
- 【Win 10应用开发】延迟共享
延迟共享是啥呢,这么说吧,就是在应用程序打开共享面板选择共享目标时,不会设置要共享的数据,而是等到共享目标请求数据时,才会发送数据,而且,延迟操作可以在后台进行. 这样说似乎过于抽象,最好的诠释方法, ...
- 【Win 10 应用开发】RTM版的UAP项目解剖
Windows 10 发布后,其实SDK也偷偷地在VS的自定义安装列表中出现了,今天开发人员中心也更新了下载.正式版的SDK在API结构上和以前预览的时候是一样的,只是版本变成10240罢了,所以大家 ...
- 【Win 10 应用开发】在代码中加载文本资源
记得前一次,老周给大伙,不,小伙伴们介绍了如何填写 .resw 文件,并且在 XAML 中使用 x:Uid 标记来加载.也顺便给大伙儿分析了运行时是如何解析 .resw 文件的. 本来说好了,后续老周 ...
- Win 10更新版1709有哪些新功能值得关注!
windows 10秋季创意者更新版1709发布已经有段时间了,也有很多用户选择升级这次更新的系统.那么,这次Win 10 更新版1709有哪些新功能值得关注呢?下面,一起随主机吧来看一看吧! 1. ...
- DevExpress Windows 10 UWP Controls新版亮点
行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress Windows 10 U ...
- (转)新手C#SQL语句的学习2018.08.13
1.创建数据库(create) CREATE DATABASE database-name 2.删除数据库(drop) drop database dbname 3.备份数据库 --- 创建 备份数据 ...
随机推荐
- php list()函数 语法
php list()函数 语法 作用:用于在一次操作中给一组变量赋值.博智达 语法:list(var1,var2...) 参数: 参数 描述 var1 必需.第一个需要赋值的变量. var2,... ...
- [转]SQLServer : EXEC和sp_executesql的区别
MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql.通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...
- 安装k8s集群(亲测)
先安装一台虚拟机,然后进行克隆,因为前面的步骤都是一样的,具体代码如下: Last login: Mon Nov 25 00:40:34 2019 from 192.168.180.1 ##安装依赖包 ...
- Docker在CentOS7中的安装与启动
Docker是当下很流行的应用容器,在系统快速部署方面有着独特的优势.由于最近在做的一个项目需要用到Docker,所以找了些资料学了学.Docker不仅仅在应用快速部署方面有着独特的优势,而且在资源共 ...
- CF1019E Raining season
https://www.luogu.org/problemnew/show/CF1019E 题解 \[ dis=day*a+b \] \[ b=-day*a+dis \] 然后就变成了斜率优化. 考虑 ...
- leetcode-mid-array-49 Group Anagrams
mycode 95.35% 思路:构建字典 class Solution(object): def groupAnagrams(self, strs): """ :ty ...
- kafka 和 rocketMQ 的数据存储
kafka 版本:1.1.1 一个分区对应一个文件夹,数据以 segment 文件存储,segment 默认 1G. 分区文件夹: segment 文件: segment 的命名规则是怎样的? kaf ...
- Powershell指令集_1
目录 目录 前言 程序进度条 Write-Progress 执行表达式 Invoke-Expression 表格化打印信息 Format-Table 获取系统服务 Get-WmiObject 循环 F ...
- HTTP代理(转)
个人总结: 两篇文章介绍了https代理的两种方式: ·一种是普通http请求代理 ·一种是通过隧道进行基于tcp的代理 转两篇好文: HTTP 代理原理及实现(一) https://imququ.c ...
- 【ABAP系列】SAP VA01屏幕增强(user-exit)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP VA01屏幕增强(user- ...