爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      【Win10 应用开发】集成语音命令

      首页 知识中心 软件开发 文章详情页

      【Win10 应用开发】集成语音命令

      2024-06-17 09:52:23 阅读次数:69

      App,Win10

      记得老周以前在写WP8应用开发的文章时,曾经写过语音命令集成的文章,后来8.1的时候“小娜”问世,但考虑到其变化不大,故老周没有补写相应的文章。

      今天,老周打算补一下Win 10通用应用开发中,有关语音命令集成相关的内容。虽然还是一脉相承,大的变化没有,不过Win10 sdk在语音命令定义文件中添加了新内容,而且现在不仅能在手机应用中加入语音集成,在面向PC和板子的应用中也能如愿,因为应用程序已经通用。

      同理,在开始之前,老周仍然先给大家讲个故事。

      话说10166的SDK已经发布,当然如果你网速飞快并有兴趣的话可以下来装装,不下也无妨,毕竟是可选的。上回老周告诉大家如何通过修改VS的项目模板来匹配SDK版本号,要是大家装了10166的SDK,也可以去改改,方法我就不重复了。

      这一次再给大家介绍一个技巧。或许细心的各位已经发现,UAP项目的引用列表中包含了两套程序集,分别是:

      1、用于遥测的ApplicationInsights类库。

      2、用于特珠数值类型的库,比如矩阵,一般是在DX绘图中用到,程序集为System.Numerics.Vectors。

      这两个玩意儿属于NuGet包,引用它们会增大项目的体积。而且我们可能用不上它们,但在创建项目时它们会被默认引用。一种方法你可以在创建项目后手动删除它们,然后把项目导出为自定义的项目模板,这样以后你用自定义的应用项目模板来创建项目,就会带有这些引用了。

      如果你想一劳永逸,又不想导出自定义模板,其实也可以和上次一样,直接在VS目录中修改UAP项目模板来实现。打开C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows UAP\1033目录,我们只需修改常用的几个项目就行了。

      a、先改BlankApplication项目(空白应用),打开\BlankApplication目录,找到BlankApplication.vstemplate文件,用文本编辑器打开(记事本就行了,右击,从上下文菜单中选择[编辑]),打开文件后,一直滚动到XML文档的最后,你会看到有这么几段:

        <WizardExtension>
          <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.CreateProjectCertificate.Wizard</FullClassName>
        </WizardExtension>
        <WizardExtension>
          <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.ApplicationInsights.Wizard</FullClassName>
        </WizardExtension>
        <WizardExtension>
          <Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
        </WizardExtension>
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>

      其中,有两段就是和遥测库、Numerics.Vetors相关,即以下两个节点:

        <WizardExtension>
          <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.ApplicationInsights.Wizard</FullClassName>
        </WizardExtension>
      
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>

      在XML文档中找到以上两个节点,然后把它们注释掉即可,不建议直接删除。因为一旦发现不正常或者你以后想使用这些扩展库时,就可以取消注释来还原。

        <WizardExtension>
          <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.CreateProjectCertificate.Wizard</FullClassName>
        </WizardExtension>
      <!--
        <WizardExtension>
          <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.ApplicationInsights.Wizard</FullClassName>
        </WizardExtension>
      -->
        <WizardExtension>
          <Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
          <FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
        </WizardExtension>
      <!-- 
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>
      -->

      这样就可以了,然后保存。注意权限,你可以在父目录的权限上加上你当前的登录用户并完全控制,等修改完后再把父目录上的当前用户权限删掉即可,因为容器上的权限会自动应用到子对象上。修改权限有不少人的坏惯是直接把所有者改掉,这是不合理的,对于需要保护的系统文件或程序文件,不要动不动就改掉人家的所有者帐户。

      b、类库项目。打开\ClassLibrary目录,然后用文本编辑器打开ClassLibrary.vstemplate文件,把下面内容注释掉,然后保存。

      <!--
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>
      -->


      c、Runtime组件项目。打开\RuntimeComponent目录,再打开RuntimeComponent.vstemplate文件,把下面内容注释掉。

      <!--
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>
      -->


      d、单元测试项目。打开\UnitTestApp目录,打开UnitTestApp.vstemplate文件,把下面内容注释掉,然后保存。

      <!--
        <WizardData>
          <packages repository="registry" keyName="UAPFrameworkDependenciesLocationVS14" isPreunzipped="true">
            <package id="System.Numerics.Vectors" version="4.0.0" skipAssemblyReferences="false" />
          </packages>
        </WizardData>
      -->

      ========================================================

       好了,故事讲完了,下面我们开始干正事。其实,实现语音命令主要的难度在于定义语音命令,所以,下面老周就从头到尾给大家演示一下如何编写VCD文件。

      往项目中添加一个xml文件。默认在新的XML文件中会生成以下行:

      <?xml version="1.0" encoding="utf-8" ?>

      不用管他,这是XML文件通用的文档标记,首先,我们定义文档的根VoiceCommands。

      <VoiceCommands xmlns="http:///voicecommands/1.2">
        
      </VoiceCommands>

      每类XML文档都有相应的规范,这些规范一般以.xsd文件定义,我们在编写XML文档时,通常是引入相应的命名空间来进行验证,就好像我们在C#中要使用某个类型可以先using其所在命名空间(VB中为Import)一样。在VCD(语音命令定义)文件中我们要引入http:///voicecommands/1.2命名空间。

      这跟以前的VCD文件结构一样,只是注意后的版本号要改为1.2,WP8.1的时候是1.1,现在是1.2。VoiceCommands是整个文档的根节点,它下面可以包含多个CommandSet节点,最少1个,最多15个,至少目前来说xsd文件中是这样定义。通常,CommandSet节点将作为一个命令集合存在,以语言为划分,比如中文的命令归到一个CommandSet中,安哥拉语归一个CommandSet,鸟语也归到一个CommandSet中。

      这里我只定义zh-cn语言的命令集:

      <VoiceCommands xmlns="http:///voicecommands/1.2">
        <CommandSet xml:lang="zh-cn" Name="set">
          
        </CommandSet>
      </VoiceCommands>

      CommandSet既然是命令集了,就说明它下面可以包含N条语音命令。是的,它可以包含最多100条语音命令,用Command元素表示。但是,CommandSet的子元素在设置时必须按顺序进行,你不能乱来。

      首先必须放一个CommandPrefix元素或者AppName元素,CommandPrefix元素是以前就有的,AppName元素是现在新增的,根据xsd文件的定义,这两个元素都是一样的,所以你不能同时,只能任选其一。大概是为兼容早期版本的VCD文件,所以保留CommandPrefix元素。CommandPrefix和AppName元素的作用是给你的程序起一个别名,这个名字一定要方便用户用嘴巴去说的,比如你的应用叫“高大上_v2.0.1”,这个你让用户怎么念呢,所以这时候你可以为程序起一个好名字。

        <CommandSet xml:lang="zh-cn" Name="set">
          <AppName>高大上</AppName>
          
        </CommandSet>

      这样一来,用户在使用语音命令时,只要说出“高大上”就能识别出是你的高大上应用了。

      AppName之后,要定义一个Example元素,用来告诉用户如何使用你的程序的语音命令,比如“微博 发微博。”。

        <CommandSet xml:lang="zh-cn" Name="set">
          <AppName>高大上</AppName>
          <Example>“高大上 红色”,或者“高大上 左对齐”</Example>
          
        </CommandSet>

      接下来就是定义语音命令了,本例就定义两个命令,第一个命令叫color,通过它可以改变界面上文本的颜色;第二个命令叫align,通过它可以修改文本在水平方向上的对齐方式(左、中、右)。

          <Command Name="color">
            <Example>“红色”或者“改为红色”</Example>
            <ListenFor>[改为]{coloritem}</ListenFor>
            <Feedback>正在修改颜色……</Feedback>
            <Navigate />
          </Command>

      Example与上面的Example功能一样,但意义不同,上面的Example元素是面向整个命令集的,而Command上的Example元素是针对当前命令的。

      ListenFor表示语音识别系统要聆听的内容,“改为”被中括号包围,表示可选,即就算你没有说出“改为”两字也能进行识别,后面的coloritem放在一对大括号中,表示它引用一个短语列表,内容可以是短语列表中的任何一项,比如:

          <PhraseList Label="coloritem">
            <Item>红色</Item>
            <Item>蓝色</Item>
            <Item>绿色</Item>
            <Item>紫色</Item>
          </PhraseList>

      PhraseList元素定义可以被识别的列表候选项,Label属性是必须的,它的名字要与前面Command中ListenFor元素中的引用对应,不然ListenFor无法找到相应的列表项。PhraseList元素必须放在Command元素后面。

      下面我们来定义第二条命令,用于设置文本的水平对齐方式。

          <Command Name="align">
            <Example>“左对齐”、“居中”、“右对齐”</Example>
            <ListenFor>{alignitem}[对齐]</ListenFor>
            <Feedback>正在设置对齐方式……</Feedback>
            <Navigate/>
          </Command>
          <PhraseList Label="alignitem">
            <Item>左</Item>
            <Item>居中</Item>
            <Item>右</Item>
          </PhraseList>


      Navigate元素虽然是必须的,但在RuntimeApp中用不上,所以Target属性不必设置。FeedBack是当识别成功后,在小娜面板上显示的内容(小娜会读出它),以向用户提供操作反馈。

      整个VCD文件的内容如下:

      <?xml version="1.0" encoding="utf-8" ?>
      
      <VoiceCommands xmlns="http:///voicecommands/1.2">
        <CommandSet xml:lang="zh-cn" Name="set">
          <AppName>高大上</AppName>
          <Example>“高大上 红色”,或者“高大上 左对齐”</Example>
          <Command Name="color">
            <Example>“红色”或者“改为红色”</Example>
            <ListenFor>[改为]{coloritem}</ListenFor>
            <Feedback>正在修改颜色……</Feedback>
            <Navigate />
          </Command>
          <Command Name="align">
            <Example>“左对齐”、“居中”、“右对齐”</Example>
            <ListenFor>{alignitem}[对齐]</ListenFor>
            <Feedback>正在设置对齐方式……</Feedback>
            <Navigate/>
          </Command>
          <PhraseList Label="coloritem">
            <Item>红色</Item>
            <Item>蓝色</Item>
            <Item>绿色</Item>
            <Item>紫色</Item>
          </PhraseList>
          <PhraseList Label="alignitem">
            <Item>左</Item>
            <Item>居中</Item>
            <Item>右</Item>
          </PhraseList>
        </CommandSet>
      </VoiceCommands>

      确保该XML文件的生成操作为“内容”,不复制到输出目录。

      在应用程序运行时,应当安装语音命令文件。在App类中重写的OnLaunched方法中加入安装VCD文件的代码。

                  // 获取安装包中的VCD文件
                  StorageFile vcd = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///vcd.xml"));
                  // 安装VCD文件
                  await VoiceCommandDefinitionManager.InstallCommandDefinitionsFromStorageFileAsync(vcd);

      注意using以下命名空间:
       Windows.Storage

       Windows.ApplicationModel.VoiceCommands - 操作VCD文件的API现已移到这里

      当小娜成功识别语音命令后,会激活我们的高大上应用程序,这时候Application类的OnActived方法会被调用,我们在App类中应当重写该方法,并处理语音命令识别。

              protected override void OnActivated(IActivatedEventArgs e)
              {
                  // 如果程序不是因为语音命令而激活的,就不处理
                  if (e.Kind != ActivationKind.VoiceCommand) return;
      
                  VoiceCommandActivatedEventArgs vcargs = (VoiceCommandActivatedEventArgs)e;
                  // 分析被识别的命令
                  var res = vcargs.Result;
      
                  /*
                  输出调试信息
                  System.Text.StringBuilder strbd = new System.Text.StringBuilder();
                  strbd.AppendLine("触发识别的规则:");
                  foreach (string ru in res.RulePath)
                  {
                      strbd.AppendFormat("\t{0}\n", ru);
                  }
                  strbd.AppendLine("\n语义属性列表:");
                  foreach (var kp in res.SemanticInterpretation.Properties)
                  {
                      strbd.AppendFormat("{0} - {1}\n", kp.Key, string.Join(", ", kp.Value.ToArray()));
                  }
                  System.Diagnostics.Debug.WriteLine("\n===============================\n" + strbd.ToString() + "/n==============================================");
                  */
      
                  // 获取被识别的命令的名字
                  string cmdName = res.RulePath[0];
      
                       ……
      
                  if (cmdName == "color") //设置颜色
                  {
                      // 获取被识别出来的短语项
                      string coloritem = res.SemanticInterpretation.Properties["coloritem"][0];
                      Color color = Colors.Black;
                      switch (coloritem)
                      {
                          case "红色":
                              color = Colors.Red;
                              break;
                          case "蓝色":
                              color = Colors.Blue;
                              break;
                          case "绿色":
                              color = Colors.Green;
                              break;
                          case "紫色":
                              color = Colors.Purple;
                              break;
                      }
                      uc.SetColor(color);
                  }
                  else if (cmdName == "align") //设置对齐方式
                  {
                      // 获取被识别的短语
                      string alignitem = res.SemanticInterpretation.Properties["alignitem"][0];
                      HorizontalAlignment align = HorizontalAlignment.Left;
                      switch (alignitem)
                      {
                          case "左":
                              align = HorizontalAlignment.Left;
                              break;
                          case "居中":
                              align = HorizontalAlignment.Center;
                              break;
                          case "右":
                              align = HorizontalAlignment.Right;
                              break;
                      }
                      uc.SetAlignment(align);
                  }
      
                  Window.Current.Activate();
              }

      识别结果由SpeechRecognitionResult类封装,其中,被识别的语音命令的名字会存放到RulePath属性中,它是一个只读的字符串列表,一般来说,应用程序每次仅处理一条语音命令,所以只要访问RulePath属性的第一个元素就可以知道被识别的语音命令的名字。该命令名字是在VCD文件的Command元素的Name属性上定义的。

      要知道用户说出了ListenFor元素所引用的PhraseList列表中的某个短语,可以访问SpeechRecognitionResult对象的SemanticInterpretation.Properties 属性值,它是一个字典集合,通过key的名字可以找出被识别的项。

      这个key和VCD文件中PhraseList元素的Label属性对应。比如用户对着小娜说:“高大上 左对齐”,那么在VCD文件中定义对齐命令的PhraseList的Label值为alignitem,所以要访问.SemanticInterpretation.Properties["alignitem"]来获取,因为用户说了“左对齐”,“对齐”是可选的,而“左”是在短语列表中的,所以.Properties["alignitem"]字典所返回的字符串列表中就包含一个“左”值。

      对已识别的语音命令进行分析后,程序就要做出相应的处理了。就像本例中,用于修改文本颜色或设置文本的对齐方式。

      接下来,可以运行一下“高大上”应用,当应用顺利运行后,表明语音命令文件已经注册。这时候可以对着小娜说话了,现在小娜是无处不在的,所以你不必要在手机上测试,只要你有话筒,在桌面上就可以开工。

      比如,对着小娜讲“高大上 紫色”,这时候小娜会响应,并且会把应用界面上的文本改为紫色。

      【Win10 应用开发】集成语音命令

      接着,你可以试着对小娜说:“高大上 右对齐”,然后文本会设置为右对齐。

      【Win10 应用开发】集成语音命令

      OK,今天的牛皮暂时吹到这里,明天如果有空,老周继续吹语音命令相关的,下一篇烂文会说一说如何让语音命令集成结合到App Service中使用。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://www.cnblogs.com/tcjiaan/p/4638246.html,作者:东邪独孤,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:解决pandas读取文件报错ValueError: Invalid file path or buffer object type: <class ‘tuple‘>

      下一篇:Android RecyclerView 列表加载图片宽高适配

      相关文章

      2025-04-09 09:11:38

      Vue学习笔记:$panrent $root

      Vue学习笔记:$panrent $root

      2025-04-09 09:11:38
      App , root , 组件
      2025-03-28 07:41:55

      antDesign在react项目中样式失效

      antDesign在react项目中样式失效

      2025-03-28 07:41:55
      App , css , react , src , 安装 , 引入
      2025-01-06 08:42:57

      Vue学习笔记:组件 slot等综合示例

      Vue学习笔记:组件 slot等综合示例

      2025-01-06 08:42:57
      App , vue , 组件
      2025-01-06 08:42:57

      Vue3学习笔记:使用$emit实现子组件传递数据给父组件

      Vue3学习笔记:使用$emit实现子组件传递数据给父组件

      2025-01-06 08:42:57
      App , event , vue , 事件 , 组件 , 自定义
      2024-11-19 09:36:27

      利用区块链技术实现返利App的透明化追溯

      区块链是一种分布式账本技术,通过去中心化的网络节点共同维护和管理数据,保证数据的不可篡改性和透明性。每个区块包含了交易信息及其时间戳,通过加密技术确保数据的安全性和一致性。

      2024-11-19 09:36:27
      App , 区块链
      2024-11-15 06:53:34

      Vue中父组件和子组件的关系

      Vue中父组件和子组件的关系

      2024-11-15 06:53:34
      App , props , 传递 , 组件
      2024-06-26 06:18:07

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      实时可视化树工具只能查看XAML定义的界面,如WPF和Win App。现在,Win App都编译为本地代码,直接找可执行文件是走不通了。

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      【Win 10应用开发】分阶段进行数据绑定

      使用x:Bind扩展标记进行数据绑定,是在编译阶段完成,至于说性能优化方面,大概主要是优化CPU资源的使用,因为免去了运行阶段进行绑定的过程。

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      【Win 10 应用开发】多媒体转码

      【Win 10 应用开发】多媒体转码

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      【Win10应用开发】签名与验证

      对数据进行签名和验证,是为了防止数据被“盗版”。比较常规的做法是通过公钥进行验证。

      2024-06-26 06:18:07
      App , Win10
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5235521

      查看更多

      最新文章

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      2024-06-26 06:18:07

      【Win 10 应用开发】多媒体转码

      2024-06-26 06:18:07

      【Win10应用开发】签名与验证

      2024-06-26 06:18:07

      【Win 10应用开发】分阶段进行数据绑定

      2024-06-26 06:18:07

      【Win10 应用开发】解决VS 2015 RC不能调试手机应用的问题

      2024-06-26 06:17:16

      【Win 10 应用开发】UI Composition 札记(二):基本构件

      2024-06-26 06:17:16

      查看更多

      热门文章

      Java基础(6)-Win10系统下载安装配置JDK1.8

      2023-04-07 06:44:05

      【Win10应用开发】自定义磁贴通知的排版

      2024-06-17 09:52:23

      【Win10应用开发】签名与验证

      2024-06-26 06:18:07

      【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的

      2024-06-26 06:17:16

      【Win 10应用开发】Adaptive磁贴模板的XML文档结构

      2024-06-17 10:03:58

      【Win 10应用开发】分阶段进行数据绑定

      2024-06-26 06:18:07

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      【Win10 应用开发】解决VS 2015 RC不能调试手机应用的问题

      【Win 10应用开发】实现全屏播放的方法

      【Win10应用开发】相对布局(RelativePanel)

      【Win10 应用开发】人脸识别

      【Win10应用开发】签名与验证

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号