UWP 在XAML设计器中使用设计时数据

1. 功能解释

有些布局没有数据很难进行可视化。 在本文档中,我们将审查从事桌面项目的开发人员可在 XAML 设计器中模拟数据的一种方法。 此方法是使用现有可忽略的”d:”命名空间来实现的。 利用这种方法,可快速将设计时数据添加到页面或控件中,而无需创建完整的模拟视图模型,或者只需测试属性更改会如何影响应用程序,而无需担心这些更改会影响你的发布版本。 所有 d: 数据仅由 XAML 设计器使用,无可忽略的命名空间值编译到应用程序中。

2. 使用此功能的前置条件

  • 设计时数据需要 Visual Studio 2019 版本 16.7 或更高版本。
  • 支持目标是适用于 .NET Core 的 Windows Presentation Foundation (WPF) 和 UWP 的 Windows 桌面项目。 如果已启用”适用于 .NET Framework 的新版 WPF XAML 设计器”预览功能,则此功能还可用于 .NET Framework。
  • 从 Visual Studio 2019 版本 16.7 开始,此功能适用于 WPF 和 UWP 框架中的所有内置控件。 16.8 预览版本现已提供对第三方控件的支持。

3. 设计时数据基本信息

设计时数据是你设置的模拟数据,使控件更易于在 XAML 设计器中进行可视化。 首先,将以下代码行添加到 XAML 文档的标头(如果这些代码行尚不存在):

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"

添加命名空间后,可将 d: 置于任何属性之前,使其仅在 XAML 设计器中显示,而不在运行时显示。

例如,可将文本添加到通常绑定了数据的 TextBlock。

UWP 在XAML设计器中使用设计时数据

在此示例中,如果没有 d:Text,则 XAML 设计器对于 TextBlock 不显示任何内容。 而是显示”Name!”, 在此情况下,TextBlock 在运行时将具有实际数据。

除了将d:与控件的属性结合之外,你也可将 d: 与任何 UWP 或 WPF .NET Core 控件结合使用。 即将其添加到控件本身。

        <d:TextBox
           Text="20 - 起床 (1/1)"/>

UWP 在XAML设计器中使用设计时数据

UWP 在XAML设计器中使用设计时数据

在此示例中,按钮仅在设计时显示。 使用此方法可为自定义控件放置占位符,或者可试用不同的控件。 在运行时期间,所有 d: 特性和控件都将被忽略。

4. 在设计时预览图象

可为绑定到页面或动态加载的图像设置设计时源。 将要在 XAML 设计器中显示的图像添加到项目中。 然后,可在设计时在 XAML 设计器中显示该图像:

"DesignTimePicture.jpg" />

5. ListView的设计时数据

ListView 是一种在桌面应用中显示数据的常用方法。 但是,如果没有任何数据,ListView 就难以进行可视化。 可使用此功能创建内联设计时数据 ItemSource。 XAML 设计器在设计时在 ListView 中显示该数组中的内容。

"{Binding Items}" VerticalAlignment="Bottom">

                One
                Two
                Three

                    "{Binding ItemName}" d:Text="{Binding .}" />

上一个示例显示了在 XAML 设计器中具有三个 TextBlock 的 ListView。

你也可以创建一个数据对象数组。 例如,可将 City 数据对象的公共属性构建为设计时数据。

public class City
    {
        public string Name { get; set; }
        public string Country { get; set; }
    }
"{Binding Items}" VerticalAlignment="Bottom">

                "NewYork" Country="America"/>
                "Tokyo" Country="Japan"/>
                "Guangzhou" Country="China"/>

                "local:City">
                    "Horizontal">
                        "{Binding Name}" Margin="0,0,10,0" />
                        "{Binding Country}" />

UWP 在XAML设计器中使用设计时数据

这样做的好处是,你可将控件绑定到模型的设计时静态版本。

本项目演示用的Xbox示例,已经托管到Github,https://github.com/hupo376787/XboxAchievements

参考:https://docs.microsoft.com/zh-cn/visualstudio/xaml-tools/xaml-designtime-data?view=vs-2019

Original: https://www.cnblogs.com/hupo376787/p/13832671.html
Author: 猫叔Vincent
Title: UWP 在XAML设计器中使用设计时数据

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux 0.11源码阅读笔记-中断过程

    Linux 0.11源码阅读笔记-中断过程 是什么中断 中断发生时,计算机会停止当前运行的程序,转而执行中断处理程序,然后再返回原被中断的程序继续运行。中断包括硬件中断和软件中断,…

    Linux 2023年5月27日
    0117
  • Git基本使用命令

    Git配置 Git最小配置 配置全局账户,该账户对所有Git仓库都有效 git config –global user.name ‘&#x8D26;&#x6237…

    Linux 2023年6月13日
    079
  • muduo源码分析之muduo简单运用

    今天不先实现 muduo项目,我们先来看下 muduo库的基本使用,只有了解了如何用,才能在写代码的时候知道自己写的找个函数是干嘛的,实际上是怎么使用的这个函数。首先说简单点,就是…

    Linux 2023年6月13日
    093
  • 在Ubuntu机器上使用war包安装Jenkins

    因为一些需求需要迁移之前使用的Jenkins,原来是按照官方文档使用apt方式安装的,这次搬迁后的机器由于默认不通外网(可以通过代理走外网),因此趁此机会,尝试改用war包方式安装…

    Linux 2023年6月6日
    0119
  • Color 16 Base Code 颜色代码大全

    颜色预览表,请参考以下图片。 十六进制颜色编码字符串如下所示(前置的英语单词都是颜色) ‘aliceblue’: ‘#F0F8FF’…

    Linux 2023年6月7日
    0129
  • 微信小程序开发(1)

    微信小程序开发(1) 微信小程序开发(1) 代码结构与基本配置 代码结构与基本配置 基本HelloWorld创建 开发框架——基本构成 微信开发者工具 版本控制 WXML wxml…

    Linux 2023年6月8日
    0103
  • bootstrap的基础使用

    Bootstrap Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个…

    Linux 2023年6月7日
    0111
  • Unicode、UTF-8、UTF-16 终于懂了

    计算机起源于美国,上个世纪,他们对英语字符与二进制位之间的关系做了统一规定,并制定了一套字符编码规则,这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码…

    Linux 2023年6月13日
    0108
  • linux man 中文手册安装

    Linux Man (手册) linux man 中文手册安装 步骤 下载源程序 解压文件并进入该目录 unzip master.zip ;cd master 安装支持程序 sud…

    Linux 2023年6月7日
    086
  • php获取图片的主要颜色值RGB

    public function dominant_color() { $image = 'D:/Python/flow/test_photos/12240303_80d8…

    Linux 2023年6月7日
    0117
  • Redis16个常见使用场景

    目录 缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞、签到、打卡 商品标签 商品筛选 用户关注、推荐模…

    Linux 2023年5月28日
    0114
  • 详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址

    详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址 概念 IP地址:一般是指逻辑ip; 子网掩码:将IP划分为网络号和主机号的IP; 网络号/主机号:子网掩码转成二进制后,…

    Linux 2023年6月6日
    0129
  • Redis快速度特性及为什么支持多线程及应用场景

    转载请注明出处: 1.Redis 访问速度快特性 正常情况下,Redis执行命令的速度非常快,官方给出的数字是读写性能可以达到10万/秒,当然这也取决于机器的性能;Redis使用了…

    Linux 2023年5月28日
    0101
  • 【Leetcode】53. 最大子数组和

    给你一个整数数组 nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: &#x8F93;&am…

    Linux 2023年6月6日
    098
  • 如何优化前端性能?

    导读:随着前端的范畴逐渐扩大,深度逐渐下沉,富前端必然带来的一个问题就是性能。特别是在大型复杂项目中,重前端业务可能因为一个小小的数据依赖,导致整个页面卡顿甚至崩溃。本文基于Qui…

    Linux 2023年6月8日
    0118
  • 在linux里部署OA项目环境

    1.首先要实现linux可以从windows系统里把文件拖到linux里 ①挂载光盘 [root@localhost ~]# mkdir /mnt/cdrom //创建挂载点 [r…

    Linux 2023年6月13日
    0124
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球