workflow/recast-alpha/ux/MainWindow.xaml

<?xml version="1.0" encoding="UTF-8"?>
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:OSDCloud" mc:Ignorable="d" Title="OSDCloud" Width="800" Height="700" Background="#FFF6F8FF" WindowStartupLocation="CenterScreen" ResizeMode="CanResizeWithGrip">
    <Grid Margin="10,0,10,10">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="10" />
            <RowDefinition Height="430" />
            <RowDefinition Height="10" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <Menu Background="White" BorderBrush="#DDE5F5" BorderThickness="0" FontWeight="Bold" Height="30" VerticalAlignment="Top" HorizontalAlignment="Left">
                <MenuItem x:Name="HardwareMenuItem" Header="Hardware" Padding="4" />
                <MenuItem x:Name="LogsMenuItem" Header="Logs" Padding="4" />
                <MenuItem Header="Shell" Padding="4" ScrollViewer.CanContentScroll="True" UseLayoutRounding="False">
                    <MenuItem x:Name="RunCmdPrompt" Header="CMD Prompt" />
                    <MenuItem x:Name="RunPowerShell" Header="Windows PowerShell" />
                    <MenuItem x:Name="RunPwsh" Header="PowerShell 7" Visibility="Collapsed" />
                </MenuItem>
                <MenuItem x:Name="AboutMenuItem" Header="About" Padding="4" />
            </Menu>
        </Grid>
        <Border Grid.Row="1" Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="6" Margin="6">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                    <RowDefinition Height="20" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="110" />
                    <ColumnDefinition Width="230" />
                    <ColumnDefinition Width="10" />
                    <ColumnDefinition Width="110" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Row="0" Grid.Column="0" Text="Manufacturer" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="0" Grid.Column="1" Text="deviceManufacturerText" x:Name="deviceManufacturerText" Foreground="DarkGray" FontWeight="Bold" />
                <TextBlock Grid.Row="0" Grid.Column="3" Text="Model" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="0" Grid.Column="4" Text="deviceModelText" x:Name="deviceModelText" Foreground="DarkGray" FontWeight="Bold" />
 
                <TextBlock Grid.Row="1" Grid.Column="0" Text="Product" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="1" Grid.Column="1" Text="deviceProductText" x:Name="deviceProductText" Foreground="DarkGray" FontWeight="Bold" />
                <TextBlock Grid.Row="1" Grid.Column="3" Text="System SKU" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="1" Grid.Column="4" Text="deviceSystemSKUText" x:Name="deviceSystemSKUText" Foreground="DarkGray" FontWeight="Bold" />
 
                <TextBlock Grid.Row="2" Grid.Column="0" Text="Serial Number" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="2" Grid.Column="1" Text="deviceSerialNumberText" x:Name="deviceSerialNumberText" Foreground="Blue" FontWeight="Bold"/>
                <TextBlock Grid.Row="2" Grid.Column="3" Text="UUID" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="2" Grid.Column="4" Text="deviceUUIDText" x:Name="deviceUUIDText" Foreground="DarkGray" FontWeight="Bold"/>
 
                <TextBlock Grid.Row="3" Grid.Column="0" Text="Bios Version" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="3" Grid.Column="1" Text="deviceBiosVersionText" x:Name="deviceBiosVersionText" Foreground="DarkGray" FontWeight="Bold" />
                <TextBlock Grid.Row="3" Grid.Column="3" Text="Bios Date" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="3" Grid.Column="4" Text="deviceBiosReleaseDateText" x:Name="deviceBiosReleaseDateText" Foreground="DarkGray" FontWeight="Bold" />
 
                <TextBlock Grid.Row="4" Grid.Column="0" Text="TPM 2.0" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="4" Grid.Column="1" Text="deviceIsTpmReadyText" x:Name="deviceIsTpmReadyText" Foreground="DarkGray" FontWeight="Bold" />
                <TextBlock Grid.Row="4" Grid.Column="3" Text="Autopilot" Margin="8,0" FontWeight="Bold" />
                <TextBlock Grid.Row="4" Grid.Column="4" Text="deviceIsAutopilotReadyText" x:Name="deviceIsAutopilotReadyText" Foreground="DarkGray" FontWeight="Bold" />
            </Grid>
        </Border>
        <TabControl Grid.Row="3" Grid.RowSpan="2" Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="6" Margin="6">
            <TabControl.Resources>
                <Style TargetType="TabItem">
                    <Setter Property="FontWeight" Value="Bold" />
                </Style>
            </TabControl.Resources>
            <TabItem Header="Deployment Settings">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="6" Margin="6">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="32" />
                                <RowDefinition Height="20" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="20" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="32" />
                                <RowDefinition Height="20" />
                                <RowDefinition Height="32" />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="120" />
                                <ColumnDefinition Width="180" />
                                <ColumnDefinition Width="20" />
                                <ColumnDefinition Width="70" />
                                <ColumnDefinition Width="180" />
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
                            <TextBlock Grid.Row="0" Grid.Column="0" Text="Task Sequence" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="0" Grid.Column="1" x:Name="TaskSequenceCombo" Margin="4" Height="24" FontWeight="SemiBold" />
 
                            <TextBlock Grid.Row="2" Grid.Column="0" Text="Operating System" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="2" Grid.Column="1" x:Name="OperatingSystemCombo" Margin="4" Height="24" FontWeight="SemiBold" />
                            <TextBlock Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3" x:Name="SelectedIdText" Text="Default Windows 11 25H2 amd64 Retail en-us 26200.7462" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="DarkGray" TextWrapping="Wrap" Margin="4" />
                             
                            <TextBlock Grid.Row="3" Grid.Column="0" Text="Language" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="3" Grid.Column="1" x:Name="OSLanguageCodeCombo" Margin="4" Height="24" FontWeight="SemiBold" />
                            <TextBlock Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="3" x:Name="SelectedOSLanguageText" Text="English (United States)" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="DarkGray" TextWrapping="Wrap" Margin="4" />
                             
                            <TextBlock Grid.Row="4" Grid.Column="0" Text="Edition" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="4" Grid.Column="1" x:Name="OSEditionCombo" Margin="4" Height="24" FontWeight="SemiBold" />
                             
                            <TextBlock Grid.Row="5" Grid.Column="0" Text="Activation" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="5" Grid.Column="1" x:Name="OSActivationCombo" Margin="4" Height="24" FontWeight="SemiBold" />
                             
                            <TextBlock Grid.Row="6" Grid.Column="0" Text="FileName" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <TextBlock Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="5" Margin="4" x:Name="SelectedFileNameText" Text="Default 26200.7462.251207-0044.25h2_ge_release_svc_refresh_CLIENTCONSUMER_RET_x64FRE_en-us.esd" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="DarkGray" TextWrapping="Wrap" />
                             
                            <TextBlock Grid.Row="8" Grid.Column="0" Text="DriverPack" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="8" Grid.Column="1" Grid.ColumnSpan="5" x:Name="DriverPackCombo" Margin="4" Height="24" FontWeight="SemiBold" SelectedIndex="0" />
                             
                            <TextBlock Grid.Row="9" Grid.Column="0" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Text="DriverPack Url" Margin="4" />
                            <TextBlock Grid.Row="9" Grid.Column="1" Grid.ColumnSpan="5" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="DarkGray" TextWrapping="Wrap" x:Name="DriverPackUrlText" Text="None" Margin="4" />
                             
                            <TextBlock Grid.Row="11" Grid.Column="0" Text="Post Action" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                            <ComboBox Grid.Row="11" Grid.Column="1" x:Name="PostActionCombo" Margin="4" Height="24" FontWeight="SemiBold" ToolTip="env:OSDCLOUD_POSTACTION" />
                        </Grid>
                    </ScrollViewer>
                </Border>
            </TabItem>
            <TabItem Header="Disk">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="16" Margin="0">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="32" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="Target Disk Index" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" />
                        <ComboBox x:Name="DiskCombo" Grid.Row="0" Grid.Column="1" Margin="4" Height="24" FontWeight="SemiBold" />
                    </Grid>
                </Border>
            </TabItem>
            <TabItem Header="Scripts">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="16" Margin="0">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                            <RowDefinition Height="10" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" Text="Pre-Deployment Scriptblock" FontWeight="SemiBold" Foreground="#3b455a" Margin="0,0,0,4" />
                        <TextBox Grid.Row="1" x:Name="PreDeploymentScriptTextBox" Background="WhiteSmoke" Foreground="#3b455a" FontFamily="Consolas" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" BorderBrush="#d7dde8" BorderThickness="1" Padding="8" Text="# PowerShell content in this ScriptBlock will be executed immediately after pressing Start" ToolTip="PowerShell content in this ScriptBlock will be executed immediately after pressing Start" />
                        <TextBlock Grid.Row="3" Text="Post-Deployment Scriptblock" FontWeight="SemiBold" Foreground="#3b455a" Margin="0,0,0,4" />
                        <TextBox Grid.Row="4" x:Name="PostDeploymentScriptTextBox" Background="WhiteSmoke" Foreground="#3b455a" FontFamily="Consolas" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" BorderBrush="#d7dde8" BorderThickness="1" Padding="8" Text="# PowerShell content in this ScriptBlock will be executed immediately before WinPE Post Action" ToolTip="PowerShell content in this ScriptBlock will be executed immediately before WinPE Post Action" />
                    </Grid>
                </Border>
            </TabItem>
            <TabItem Header="SetupComplete">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="16" Margin="0">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" Text="SetupComplete.cmd" FontWeight="SemiBold" Foreground="#3b455a" Margin="0,0,0,4" />
                        <TextBox Grid.Row="1" x:Name="SetupCompleteTextBox" Background="WhiteSmoke" Foreground="#3b455a" FontFamily="Consolas" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" BorderBrush="#d7dde8" BorderThickness="1" Padding="8" Text="REM CMD content in this block will be executed at the end of SetupComplete.cmd before OOBE starts" ToolTip="CMD content in this block will be executed at the end of SetupComplete.cmd before OOBE starts" />
                    </Grid>
                </Border>
            </TabItem>
            <TabItem Header="Application Workspace">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="16" Margin="0">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="32" />
                            <RowDefinition Height="32" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="220" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" Text="Application Workspace Deployment" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" TextWrapping="Wrap" />
                        <TextBox Grid.Row="0" Grid.Column="1" x:Name="AWDeploymentTextBox" Text="OSDCloud" Margin="4" Height="24" FontWeight="SemiBold" ToolTip="env:OSDCLOUD_RECAST_AW_DEPLOYMENT" />
                        <TextBlock Grid.Row="1" Grid.Column="0" Text="Application Workspace Zone" VerticalAlignment="Center" FontWeight="SemiBold" Foreground="#3b455a" Margin="4" TextWrapping="Wrap" />
                        <TextBox Grid.Row="1" Grid.Column="1" x:Name="AWZoneTextBox" Text="" Margin="4" Height="24" FontWeight="SemiBold" ToolTip="env:OSDCLOUD_RECAST_AW_ZONE" />
                    </Grid>
                </Border>
            </TabItem>
            <TabItem Header="Analytics">
                <Border Background="White" BorderBrush="#DDE5F5" BorderThickness="1" Padding="16" Margin="0">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <StackPanel>
                            <TextBlock Text="OSDCloud Analytics" FontWeight="Bold" FontSize="16" Foreground="#3b455a" Margin="0,0,0,12" />
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a" Margin="0,0,0,12">
                                <Run Text="Device Information:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="Serial Number: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionSerialNumber" Text="Not Available" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="Manufacturer: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionManufacturer" Text="Not Available" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="Model: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionModel" Text="Not Available" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="UUID: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionUUID" Text="Not Available" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a" Margin="0,0,0,12">
                                <Run Text="Operating System Selection:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="OS: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionOS" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="Language: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionLanguage" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="Edition: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionEdition" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                                <LineBreak />
                                <Run Text="Activation: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionActivation" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a" Margin="0,0,0,12">
                                <Run Text="Task Sequence:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="Task: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionTaskSequence" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a" Margin="0,0,0,12">
                                <Run Text="Driver Configuration:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="DriverPack: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionDriverPack" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a" Margin="0,0,0,12">
                                <Run Text="Disk Configuration:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="Target Disk: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionTargetDisk" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                            <TextBlock TextWrapping="Wrap" Foreground="#3b455a">
                                <Run Text="Post Action:" FontWeight="SemiBold" />
                                <LineBreak />
                                <Run Text="Action: " FontFamily="Consolas" />
                                <Run x:Name="DataCollectionPostAction" Text="Not Selected" FontFamily="Consolas" Foreground="DarkGray" />
                            </TextBlock>
                        </StackPanel>
                    </ScrollViewer>
                </Border>
            </TabItem>
        </TabControl>
        <Grid Grid.Row="5" Margin="4">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0" Orientation="Vertical" VerticalAlignment="Bottom" HorizontalAlignment="Left">
                <Image x:Name="LogoImage" Source="Logo.png" Height="40" Stretch="Uniform" Margin="0,0,0,0" />
            </StackPanel>
            <StackPanel Orientation="Horizontal" Grid.Column="1" VerticalAlignment="Bottom">
                <TextBlock Text="" FontSize="20" FontWeight="Bold" Foreground="#0063b1" Margin="0,0,12,0" VerticalAlignment="Center" />
                <Button x:Name="StartButton" Content="Start" Width="128" Height="40" Background="#0372FF" Foreground="White" FontSize="16" FontWeight="SemiBold" BorderBrush="#0372FF" Padding="8,0" IsDefault="True" />
            </StackPanel>
        </Grid>
    </Grid>
</Window>