mirror of
https://github.com/rbalsleyMSFT/FFU.git
synced 2026-06-14 02:09:35 -06:00
666 lines
34 KiB
XML
666 lines
34 KiB
XML
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Title="FFU Builder UI"
|
|
Height="600"
|
|
Width="900">
|
|
|
|
<!--
|
|
─────────────────────────────────────────────────────────────────
|
|
1) Window.Resources:
|
|
A minimal Expander style with no highlight/hover states
|
|
and arrow text toggling (▼ to ▲).
|
|
─────────────────────────────────────────────────────────────────
|
|
-->
|
|
<Window.Resources>
|
|
<Style x:Key="MinimalExpanderNoHighlightStyle" TargetType="Expander">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Expander">
|
|
<StackPanel>
|
|
|
|
<!-- Header Toggle -->
|
|
<ToggleButton x:Name="HeaderToggle"
|
|
IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Padding="0"
|
|
HorizontalAlignment="Left"
|
|
HorizontalContentAlignment="Left"
|
|
VerticalContentAlignment="Center">
|
|
<ToggleButton.Style>
|
|
<Style TargetType="ToggleButton">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ToggleButton">
|
|
<ContentPresenter/>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</ToggleButton.Style>
|
|
|
|
<!-- Text + Arrow side by side -->
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Optional Features"
|
|
Margin="0,0,6,0"
|
|
VerticalAlignment="Center"/>
|
|
<!-- Default arrow = “▼” -->
|
|
<TextBlock x:Name="ArrowText"
|
|
Text="▼"
|
|
VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
</ToggleButton>
|
|
|
|
<!-- Expanded content -->
|
|
<ContentPresenter x:Name="ExpandSite"
|
|
Visibility="Collapsed"
|
|
Margin="0,4,0,0"/>
|
|
</StackPanel>
|
|
|
|
<!-- Trigger: Show content, swap arrow to “▲” when expanded -->
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsExpanded" Value="True">
|
|
<Setter TargetName="ExpandSite" Property="Visibility" Value="Visible"/>
|
|
<Setter TargetName="ArrowText" Property="Text" Value="▲"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</Window.Resources>
|
|
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- =============================
|
|
Main TabControl with 5 tabs
|
|
============================= -->
|
|
<TabControl TabStripPlacement="Left"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch"
|
|
FontSize="14"
|
|
Padding="10"
|
|
Grid.Row="0">
|
|
|
|
<!-- TAB 1: Basic -->
|
|
<TabItem Header="Basic" Padding="20">
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="200"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- FFU Name -->
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,5">
|
|
<TextBlock Text="FFU Name:"/>
|
|
<Image x:Name="imgFFUNameInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
ToolTip="Enter a unique name for the FFU. Example: {WindowsRelease}_{WindowsVersion}_{SKU}_{yyyy}-{MM}-{dd}_{HH}{mm}"
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<TextBox x:Name="txtFFUName"
|
|
Grid.Row="0" Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- FFU Dev Path -->
|
|
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,5">
|
|
<TextBlock Text="FFU Development Path:"/>
|
|
<Image x:Name="imgFFUDevPathInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
ToolTip="Defaults to the location the script is run from."
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<Grid Grid.Row="1" Grid.Column="1" Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtFFUDevPath"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowseFFUDevPath"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
Margin="5,0,0,0"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for FFU Development folder."/>
|
|
</Grid>
|
|
|
|
<!-- VM Switch Name -->
|
|
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,5">
|
|
<TextBlock Text="VM Switch Name:"/>
|
|
<Image x:Name="imgVMSwitchNameInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
ToolTip="Name of the Hyper-V virtual switch."
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbVMSwitchName"
|
|
Grid.Row="2" Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- Custom VM Switch Name -->
|
|
<TextBox x:Name="txtCustomVMSwitchName"
|
|
Grid.Row="3" Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Visibility="Collapsed"
|
|
ToolTip="Enter your custom VM Switch Name."/>
|
|
|
|
<!-- VM Host IP Address -->
|
|
<StackPanel Grid.Row="4" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,5">
|
|
<TextBlock Text="VM Host IP Address:"/>
|
|
<Image x:Name="imgVMHostIPAddressInfo"
|
|
Width="16" Height="16"
|
|
Margin="5,0,0,0"
|
|
ToolTip="IP address of the Hyper-V host machine."
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<TextBox x:Name="txtVMHostIPAddress"
|
|
Grid.Row="4" Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<!-- TAB 2: Windows Settings -->
|
|
<TabItem Header="Windows Settings" Padding="20">
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/> <!-- row 0: ISO -->
|
|
<RowDefinition Height="Auto"/> <!-- row 1: Release -->
|
|
<RowDefinition Height="Auto"/> <!-- row 2: Version -->
|
|
<RowDefinition Height="Auto"/> <!-- row 3: Arch -->
|
|
<RowDefinition Height="Auto"/> <!-- row 4: Lang -->
|
|
<RowDefinition Height="Auto"/> <!-- row 5: SKU -->
|
|
<RowDefinition Height="Auto"/> <!-- row 6: Media Type -->
|
|
<RowDefinition Height="Auto"/> <!-- row 7: Product Key -->
|
|
<RowDefinition Height="*" /> <!-- row 8: Expander -->
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="200"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- (0) ISO Path -->
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows ISO Path:" VerticalAlignment="Center"/>
|
|
<Image x:Name="imgISOPathInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
ToolTip="Specify the full path to the Windows ISO file."
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<Grid Grid.Row="0" Grid.Column="1" Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtISOPath"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowseISO"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
Margin="5,0,0,0"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for a Windows ISO file."/>
|
|
</Grid>
|
|
|
|
<!-- (1) Windows Release -->
|
|
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows Release:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbWindowsRelease"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- (2) Windows Version -->
|
|
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows Version:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbWindowsVersion"
|
|
Grid.Row="2"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
Width="120"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"
|
|
IsEnabled="False"/>
|
|
|
|
<!-- (3) Windows Arch -->
|
|
<StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows Architecture:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbWindowsArch"
|
|
Grid.Row="3"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
Width="120"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"/>
|
|
|
|
<!-- (4) Windows Lang -->
|
|
<StackPanel Grid.Row="4" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows Language:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbWindowsLang"
|
|
Grid.Row="4"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
Width="120"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"/>
|
|
|
|
<!-- (5) Windows SKU -->
|
|
<StackPanel Grid.Row="5" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Windows SKU:" VerticalAlignment="Center"/>
|
|
<Image x:Name="imgWindowsSKUInfo"
|
|
Width="16"
|
|
Height="16"
|
|
Margin="5,0,0,0"
|
|
ToolTip="Select the edition of Windows you want to install."
|
|
Cursor="Arrow"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbWindowsSKU"
|
|
Grid.Row="5"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- (6) Media Type -->
|
|
<StackPanel Grid.Row="6" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Media Type:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbMediaType"
|
|
Grid.Row="6"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
Width="120"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Left"/>
|
|
|
|
<!-- (7) Product Key -->
|
|
<StackPanel Grid.Row="7" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<TextBlock Text="Product Key:" VerticalAlignment="Center"/>
|
|
</StackPanel>
|
|
<TextBox x:Name="txtProductKey"
|
|
Grid.Row="7"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- (8) Expander with top margin so it has spacing from "Product Key" above -->
|
|
<Expander x:Name="expOptionalFeatures"
|
|
Style="{StaticResource MinimalExpanderNoHighlightStyle}"
|
|
Grid.Row="8"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="2"
|
|
IsExpanded="False"
|
|
Margin="0,5,0,0"
|
|
ExpandDirection="Down">
|
|
|
|
<!-- Optional Features content -->
|
|
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Auto"
|
|
Margin="0,5,0,0">
|
|
<StackPanel x:Name="stackFeaturesContainer" Margin="15,5">
|
|
<TextBlock Text="Selected features (semicolon):"
|
|
Margin="0,10,0,5"
|
|
FontStyle="Italic"/>
|
|
<TextBox x:Name="txtOptionalFeatures"
|
|
IsReadOnly="True"
|
|
Width="350"
|
|
Margin="0,0,0,10"
|
|
ToolTip="Semicolon-delimited list of optional features"/>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</Expander>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<!-- TAB 3: Applications -->
|
|
<TabItem Header="Applications" Padding="20">
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="150"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<CheckBox x:Name="chkInstallApps" Content="Install Apps" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgInstallAppsInfo"
|
|
Width="16"
|
|
Height="16"
|
|
Cursor="Arrow"
|
|
ToolTip="Check to include additional applications in the FFU."/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<!-- TAB 4: M365 Apps/Office -->
|
|
<TabItem Header="M365 Apps/Office" Padding="20">
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="250"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Install Office -->
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" Margin="0,5">
|
|
<CheckBox x:Name="chkInstallOffice" Content="Install Office" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgInstallOfficeInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Check to install Microsoft Office as part of the FFU."/>
|
|
</StackPanel>
|
|
|
|
<!-- Office Path -->
|
|
<StackPanel x:Name="OfficePathStackPanel"
|
|
Grid.Row="1"
|
|
Grid.Column="0"
|
|
Orientation="Horizontal"
|
|
VerticalAlignment="Center"
|
|
Margin="0,5">
|
|
<TextBlock Text="Office Path:"/>
|
|
<Image x:Name="imgOfficePathInfo"
|
|
Width="16" Height="16"
|
|
Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Path to the Microsoft Office installation."/>
|
|
</StackPanel>
|
|
<Grid x:Name="OfficePathGrid"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtOfficePath"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowseOfficePath"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for Office installation folder."/>
|
|
</Grid>
|
|
|
|
<!-- Copy Office Config XML -->
|
|
<StackPanel x:Name="CopyOfficeConfigXMLStackPanel"
|
|
Grid.Row="2" Grid.Column="0"
|
|
Orientation="Horizontal"
|
|
Margin="0,5">
|
|
<CheckBox x:Name="chkCopyOfficeConfigXML" Content="Copy Office Configuration XML" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgCopyOfficeConfigXMLInfo"
|
|
Width="16" Height="16"
|
|
Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Check to copy the Office Configuration XML."/>
|
|
</StackPanel>
|
|
|
|
<!-- OfficeConfigurationXMLFile -->
|
|
<StackPanel x:Name="OfficeConfigurationXMLFileStackPanel"
|
|
Grid.Row="3"
|
|
Grid.Column="0"
|
|
Orientation="Horizontal"
|
|
VerticalAlignment="Center"
|
|
Margin="0,5"
|
|
Visibility="Collapsed">
|
|
<TextBlock Text="Office Configuration XML File:"/>
|
|
<Image x:Name="imgOfficeConfigXMLFileInfo"
|
|
Width="16" Height="16"
|
|
Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Select the Office Configuration XML file to copy."/>
|
|
</StackPanel>
|
|
<Grid x:Name="OfficeConfigurationXMLFileGrid"
|
|
Grid.Row="3"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
Visibility="Collapsed">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtOfficeConfigXMLFilePath"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowseOfficeConfigXMLFile"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
Margin="5,0,0,0"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for an Office Configuration XML file."/>
|
|
</Grid>
|
|
</Grid>
|
|
</TabItem>
|
|
|
|
<!-- TAB 5: DRIVERS -->
|
|
<TabItem Header="Drivers" Padding="20">
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="250"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Install Drivers -->
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<CheckBox x:Name="chkInstallDrivers" Content="Install Drivers to FFU" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgInstallDriversInfo"
|
|
Width="16" Height="16"
|
|
Cursor="Arrow"
|
|
ToolTip="Use DISM to service drivers directly into the FFU."/>
|
|
</StackPanel>
|
|
|
|
<!-- Copy Drivers -->
|
|
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<CheckBox x:Name="chkCopyDrivers" Content="Copy Drivers to USB drive" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgCopyDriversInfo"
|
|
Width="16" Height="16"
|
|
Cursor="Arrow"
|
|
ToolTip="Copy the drivers folder to the USB deploy partition."/>
|
|
</StackPanel>
|
|
|
|
<!-- Download Drivers -->
|
|
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<CheckBox x:Name="chkDownloadDrivers" Content="Download Drivers" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgDownloadDriversInfo"
|
|
Width="16" Height="16"
|
|
Cursor="Arrow"
|
|
ToolTip="Check to download drivers automatically."/>
|
|
</StackPanel>
|
|
|
|
<!-- Make/Model -->
|
|
<StackPanel x:Name="spMakeModelSection"
|
|
Grid.Row="3"
|
|
Grid.ColumnSpan="2"
|
|
Visibility="Collapsed"
|
|
Margin="0">
|
|
<Grid Margin="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="250"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Make -->
|
|
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<TextBlock x:Name="txtMakeLabel" Text="Make: " VerticalAlignment="Center"/>
|
|
<Image x:Name="imgMakeInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Select the device manufacturer."/>
|
|
</StackPanel>
|
|
<ComboBox x:Name="cmbMake"
|
|
Grid.Row="0"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
|
|
<!-- Model -->
|
|
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<TextBlock x:Name="txtModelLabel" Text="Model: " VerticalAlignment="Center"/>
|
|
<Image x:Name="imgModelInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Enter the device model."/>
|
|
</StackPanel>
|
|
<TextBox x:Name="cmbModel"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Margin="5"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
</Grid>
|
|
</StackPanel>
|
|
|
|
<!-- Drivers Folder -->
|
|
<StackPanel Grid.Row="4" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<TextBlock Text="Drivers Folder:" VerticalAlignment="Center"/>
|
|
<Image x:Name="imgDriversFolderInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Path to the Drivers folder."/>
|
|
</StackPanel>
|
|
<Grid Grid.Row="4" Grid.Column="1" Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtDriversFolder"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowseDriversFolder"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
Margin="5,0,0,0"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for Drivers folder."/>
|
|
</Grid>
|
|
|
|
<!-- Copy PE Drivers -->
|
|
<StackPanel Grid.Row="5" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<CheckBox x:Name="chkCopyPEDrivers" Content="Copy PE Drivers" Margin="0,0,5,0"/>
|
|
<Image x:Name="imgCopyPEDriversInfo"
|
|
Width="16" Height="16"
|
|
Cursor="Arrow"
|
|
ToolTip="Copy local PE Drivers folder to the build."/>
|
|
</StackPanel>
|
|
|
|
<!-- PE Drivers Folder -->
|
|
<StackPanel Grid.Row="6" Grid.Column="0" Orientation="Horizontal" Margin="5">
|
|
<TextBlock Text="PE Drivers Folder:" VerticalAlignment="Center"/>
|
|
<Image x:Name="imgPEDriversFolderInfo"
|
|
Width="16" Height="16" Margin="5,0,0,0"
|
|
Cursor="Arrow"
|
|
ToolTip="Path to the PE Drivers folder."/>
|
|
</StackPanel>
|
|
<Grid Grid.Row="6" Grid.Column="1" Margin="5">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="txtPEDriversFolder"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"/>
|
|
<Button x:Name="btnBrowsePEDrivers"
|
|
Grid.Column="1"
|
|
Content="Browse..."
|
|
Width="80"
|
|
Margin="5,0,0,0"
|
|
VerticalAlignment="Center"
|
|
ToolTip="Browse for PE Drivers folder."/>
|
|
</Grid>
|
|
</Grid>
|
|
</TabItem>
|
|
</TabControl>
|
|
|
|
<!-- Progress Bar -->
|
|
<ProgressBar x:Name="progressBar"
|
|
Height="20"
|
|
Margin="0,10,0,0"
|
|
Grid.Row="1"
|
|
Visibility="Collapsed"/>
|
|
|
|
<!-- Status Text -->
|
|
<TextBlock x:Name="txtStatus"
|
|
Grid.Row="2"
|
|
Margin="0,5,0,0"/>
|
|
|
|
<!-- Buttons (Build Config File / Build FFU) -->
|
|
<StackPanel Grid.Row="3"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right"
|
|
Margin="0,0,20,20">
|
|
<Button x:Name="btnBuildConfig"
|
|
Content="Build Config File"
|
|
Width="150"
|
|
Margin="0,0,10,0"
|
|
FontSize="14"
|
|
Padding="10,5"/>
|
|
<Button x:Name="btnRun"
|
|
Content="Build FFU"
|
|
Width="120"
|
|
FontSize="14"
|
|
Padding="10,5"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Window>
|