@Day7 | C# WixToolset + WPF 帅到不行的安装包 [自订页面-增加自订页面]

现在

我们了解了官方UI里面的架构与流程以後,我们建立一个自订页面,
在github内Dlg结尾的,都可以当作范本,
这边使用WelcomeDlg.wxs当作介绍,

https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/WelcomeDlg.wxs

这个当范本

在专案内额外新增一个SettingDlg页面

然後复制WelcomeDlg.wxs 进SettingDlg之後,

我们再大幅度的修改一下

 <Dialog Id="SettingDlg" Width="370" Height="270" Title="System Setting">
        <Control X="0"   Y="0"   Id="BannerBitmap" Type="Bitmap" Width="370" Height="44" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
        <Control X="0"   Y="44"  Id="BannerLine" Type="Line" Width="370" Height="0" />
        <Control X="15"  Y="6"   Id="Title" Type="Text"  Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="Set System URL" />
        <Control X="25"  Y="50"  Id="Description" Type="Text" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="Input Your Setting" />
        
        <Control X="30"  Y="80"  Id="LabelWebURL" Width="70" Height="15" Type="Text" Text="System IP:" />
        <Control X="120" Y="80"  Id="EditWebURL" Width="180"  Height="15" Type="Edit" Property="SYSTEMIP" Text="{200}"  />
        <Control X="30"  Y="120" Id="LabelWebPort" Width="70" Height="15" Type="Text" Text="System Port:" />
        <Control X="120" Y="120" Id="EditWebPort" Width="180"  Height="15" Type="Edit" Property="WEBPORT" Text="{20}"  />
        
        <Control X="0"   Y="234" Id="BottomLine" Type="Line" Width="370" Height="0" />
        <Control X="180" Y="243" Id="Back" Type="PushButton"  Width="56" Height="17" Text="!(loc.WixUIBack)" />
        <Control X="236" Y="243" Id="Next" Type="PushButton" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)"/>
        <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
          <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
        </Control>
      </Dialog>      
      <Property Id="SYSTEMIP" Value="127.0.0.1"/>
      <Property Id="WEBPORT" Value="5000"/>

Control使用 Type="Edit" 的情况要在Property 指定一个Id
就跟我们使用路径的UI 还要额外补上 "",不然会出错的意思一样
这边我就直接写在页面上,带有的参数的设定。

然後我们将昨天讲到的官方UI架构
在注册部分给填入 DialogRef Id="SettingDlg"

我们插入SettingDlg页面在InstallDirDlg选择资料夹路径以後

这边要改InstallDirDlg 的下一页与 VerifyReadyDlg的上一页
还有在这中间我们加入SettingDlg 的上下页面对应。

最後我们建置执行看看!



  • 後记

要调这个位置大小,真的很麻烦,
没有使用介面参考,一切凭感觉,
让我有种在用文字档撰写程序一般XD

自订页面制作完毕後,
明天我们再来用专属这个自订页面的自订动作!

Day7程序码

https://github.com/Aslan7826/defaultMVC/commits/Day07


<<:  Day 7:git 版本控制

>>:  Day 07 : MLOps 的挑战与技术要求

Day 04:大O符号的含意

上一回提到大O符号表达执行时间,但对於大O符号我们可能有些疑问。 既是叫时间,那它的单位是什麽? 我...

Day26:今天来聊一下使用资料连接器将资料连接到Azure Sentinel

透过设定提供的资料连接器,可以将资料传送至Azure Sentinel工作区。 内含的资料连接器分别...

Linear Search

线性搜寻BigO(n) 本文为阅读Wilson Ren老师的Udemy课程的课後心得 接下来让我们先...

ASP.NET MVC 从入门到放弃(Day14)- Html Css 结构介绍

接下来讲讲 html + CSS + javascript + bootstrap基本介绍细节部分 ...

【D26】模组化#1:取股票资料

前言 在取用个资料的时候,都是一个一个执行,分散各地,为了方便需要整合;讯号灯也是如此,都放在个别的...