UWP 开发中,需要知道的1000个问题

本文主要写我开发遇到常(zhi)见(zhang)问题。

真的有那么多问题?其实我就想记 ListViewItem 的问题,我自己都不记得在什么时候写如何设置他不压缩。

设置 ListView 列表项宽度

默认 ListViewItem 是宽度压缩,在 ListView 添加代码

                         <ListView.ItemContainerStyle>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                            </Style>
                        </ListView.ItemContainerStyle>

更多关于 ListView 请看 win10 UWP ListView

如果需要设置 WPF 的 ListView 宽度,可以使用HorizontalContentAlignment="Stretch"

UWP 设置文本使用文字图标

在 UWP 很经常看到这样的图标

这就是 Segoe MDL2 icons ,可以使用下面不同的方式在 xaml 使用

SymbolIcon

可以使用的 SymbolIcon 直接给名字,相对可读性比较好

<SymbolIcon Symbol="GlobalNavigationButton"/>

FontIcon

<FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE700;"/>

TextBlock

使用 TextBlock 和 FontIcon 差不多

<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE700;"/>

参见:Segoe MDL2 icon guidelines - UWP app developer

设置 TargetType 样式

编译时 VisualStudio 告诉 Style object must specify a String value for the TargetType property 就是存在样式没有设置 TargetType ,在UWP所有的样式都需要添加 TargetType 才可以使用。

      Error WMC0080: Style object must specify a String value for the TargetType property (107, 10)

原来的代码

        <Style x:Key="KguypnDitzbbi">
            <Setter Property="FontFamily" Value="Segoe MDL2 Assets" />
            <Setter Property="Width" Value="38"></Setter>
        </Style>

修改后的代码

        <Style x:Key="KguypnDitzbbi" TargetType="TextBlock">
            <Setter Property="FontFamily" Value="Segoe MDL2 Assets" />
            <Setter Property="Width" Value="38"></Setter>
        </Style>

C# AddRange 添加位置

C# AddRange 添加位置

AddRange 添加的是在列表的最后。一开始我以为是最前。

List 添加重复项

有时候需要写一个测试,添加1000个相同项,难道使用 For ?

实际有简单方法

                List<string> Items = Enumerable.Repeat("lindexi 需要重复文字", n/*多少个*/).ToList();

上面不仅是文字,因为使用List<string> ,实际使用什么,就添加什么。

Distinct linq 匿名类去重

http://www.aneasystone.com/archives/2015/04/distinct-in-csharp-linq.html

绑定 DataContext 的所有方法

win10 uwp DataContext

如果觉得ms需要做一些功能,或想去说垃圾ms,请到Welcome to the Windows developer feedback site!

UWP中获取Encoding.Default

    Encoding.GetEncoding(0);

参见:UWP中获取Encoding.Default - yinyue200 - 博客园

UWP 使用 GBK 读取文本

win10 uwp 读取文本GBK错误 - CSDN博客

判断 ctrl 按下

判断 ctrl 按下,可以使用:

    (Window.Current.CoreWindow.GetKeyState(VirtualKey.Control) & CoreVirtualKeyStates.Down) != 0

判断其它的如 shift 使用方法也一样。

UWP 获取软件版本

UWP 获取自己软件的版本可以和服务器比较,判断当前是否需要升级,那么可以使用下面的代码获得 UWP 应用的版本

Windows.ApplicationModel.Package.Current.Id.Version

UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息

ContentDialog 透明背景

张高兴的 UWP 开发笔记:定制 ContentDialog 样式 - 张高兴 - 博客园

bind 的默认 mode

{x:Bind} 的默认 Mode 是 OneTime。{Binding} 的默认 mode 是 OneWay.

参见 Data binding in depth

协变 逆变

协变 out ,如:string->object (子类到父类的转换) 逆变 in ,如:object->string (父类到子类的转换)

https://haojima.net/Home/Blog/53

需要遵守的条约

你真的知道C#的TryParse吗?

有趣故事

开发中,会遇到一些有趣的故事。

有一天vs告诉我,你写的代码,连标点符号我也不信。

我是世界上少见的不需要写单元测试的程序员,因为我写的代码都是bug。

下面,我来告诉你一些有趣的故事:

有趣的“烫烫烫烫”和“屯屯屯屯” - imjustice - 博客园

工具

介绍一下好用的工具

HappyStudio.UwpToolsLibrary.Auxiliarys 1.0.3 UWP工具库的辅助类库

HappyStudio.UwpToolsLibrary.Information 1.0.2 UWP 工具库的信息类库

HappyStudio.UwpToolsLibrary.Control 1.1.0 UWP 工具类库的控件库

HappyStudio.UwpToolsLibrary 1.0.4 给UWP工具类库的其他模块使用的依赖类库

WinRT XAML Toolkit for Windows 10 2.3.0


本文会经常更新,请阅读原文: https://lindexi.gitee.io/lindexi/post/UWP-%E5%BC%80%E5%8F%91%E4%B8%AD-%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%841000%E4%B8%AA%E9%97%AE%E9%A2%98.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

WPF:自动执行"机器人"程序若干注意事项

企业应用中,经常会遇到一些需要定时自动执行的程序来完成某些功能,比如:自动定时从第三方web service取回数据、定时对历史数据进行清理、定时向ftp上传业...

21580
来自专栏向治洪

iOS开发入门笔记

iOS开发入门笔记 本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发i...

48360
来自专栏林德熙的博客

win10 17025 触摸bug

This article is written in both English and Chinese. 本文使用中文和英文两个版本。 在 win10 的 1...

8210
来自专栏lgp20151222

debug的一些按钮意义

9930
来自专栏林德熙的博客

WPF 渲染原理

在 WPF 最主要的就是渲染,因为 WPF 是一个界面框架。想用一篇博客就能告诉大家完整的 WPF 渲染原理是不可能的。本文告诉大家 WPF 从开发者告诉如何画...

19220
来自专栏MasiMaro 的技术博文

程序隐藏到任务栏的实现

我们在使用软件的时候,有的软件允许最小化到任务栏,然后双击任务栏的图标时又会显示出来,这篇文章主要说明如何实现这种功能; 实现这种功能主要分为两步,一是将程...

15910
来自专栏程序员的SOD蜜

“老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春

火热的MVVM框架 最近几年最热门的技术之一就是前端技术了,各种前端框架,前端标准和前端设计风格层出不穷,而在众多前端框架中具有MVC,MVVM功能的框架成为耀...

41860
来自专栏walterlv - 吕毅的博客

使 WPF 支持触摸板的横向滚动

发布于 2017-11-23 13:25 更新于 2018-08...

8920
来自专栏BY的专栏

iOS定时器,你真的会使用吗?前言正文结语

58750
来自专栏hbbliyong

WPF中播放声音媒体文件

这段时间我们小组要给部门的Annual Meeting準备一个WPF的抽奖程序,为了增加程序的有趣性,我们在程序中需要播放背景音乐等。由於对之前从未使用过WPF...

46560

扫码关注云+社区

领取腾讯云代金券