UI/Console/HDTPartitionProperties.xaml
|
<!--
MDT'S "Partition Properties" DIALOG - the modal its Format and Partition Disk page opens for New and for Edit. IT IS A MODAL AND NOT A ROW OF BOXES UNDER THE GRID. A volume has eight things to say about it and two of them are checkboxes; laid out along the bottom of a page they read as filters over the list rather than as the thing being edited, and there is nowhere honest to put OK and Cancel. NOTHING HERE DECIDES ANYTHING. The unit list, what each unit composes, and what the boxes start out holding all come from Get-HDTConsolePartitionRow; this window is the shape they are shown in, and OK hands them back to Add-HDTStepPartition or Set-HDTStepPartition. --> <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Partition Properties" Width="470" Height="420" WindowStartupLocation="CenterOwner" ResizeMode="NoResize" ShowInTaskbar="False" Background="{DynamicResource HDTPanelBrush}" FontFamily="Segoe UI" FontSize="12"> <Window.Resources> <Style TargetType="TextBlock"> <Setter Property="Foreground" Value="{DynamicResource HDTPanelTextBrush}" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Margin" Value="0,0,10,0" /> </Style> <Style TargetType="TextBox"> <!-- WHITE, BECAUSE THESE ARE TYPED IN. HDTFieldBrush is the editor's read-only wash, and using it here would say the opposite. --> <Setter Property="Background" Value="{DynamicResource HDTPanelBrush}" /> <Setter Property="Foreground" Value="{DynamicResource HDTPanelTextBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource HDTBorderBrush}" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Padding" Value="6,5,6,5" /> <Setter Property="VerticalContentAlignment" Value="Center" /> </Style> <Style TargetType="CheckBox"> <Setter Property="Foreground" Value="{DynamicResource HDTPanelTextBrush}" /> <Setter Property="VerticalAlignment" Value="Center" /> </Style> <Style TargetType="Button"> <Setter Property="MinWidth" Value="88" /> <Setter Property="Padding" Value="10,5,10,5" /> <Setter Property="Margin" Value="8,0,0,0" /> </Style> <!-- A DROPDOWN THAT DOES NOT LOOK READ-ONLY. WPF's default ComboBox template paints its own grey chrome and IGNORES Background, so a combo sitting beside white editable boxes and grey read-only ones reads as one of the grey ones - which is how the Log level dropdown came to look disabled while it was not. IsEditable puts a real text box in the closed control, which takes the Background above; IsReadOnly keeps it from being typed into, so it still behaves exactly like a dropdown - and the value can now be selected and copied, which the old one refused. NO ComboBox HERE USES AN ItemTemplate, so what the text box shows is what the closed box showed before: DisplayMemberPath where one is declared, ToString() otherwise. --> <Style TargetType="ComboBox"> <Setter Property="IsEditable" Value="True" /> <Setter Property="IsReadOnly" Value="True" /> <Setter Property="Background" Value="{DynamicResource HDTPanelBrush}" /> <Setter Property="Foreground" Value="{DynamicResource HDTPanelTextBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource HDTBorderBrush}" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Padding" Value="6,4,6,4" /> </Style> </Window.Resources> <Grid Margin="16"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="130" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" x:Name="HDTVolumeNameLabel" /> <TextBox Grid.Row="0" Grid.Column="1" x:Name="HDTVolumeNameBox" Margin="0,0,0,10" /> <TextBlock Grid.Row="1" Grid.Column="0" x:Name="HDTVolumeTypeLabel" /> <ComboBox Grid.Row="1" Grid.Column="1" x:Name="HDTVolumeTypeBox" Margin="0,0,0,10"> <ComboBoxItem Content="Primary" IsSelected="True" /> <ComboBoxItem Content="EFI" /> <ComboBoxItem Content="Recovery" /> </ComboBox> <!-- MDT PUTS THE PERCENTAGE BEHIND A RADIO PAIR and then has the units dropdown quietly ignore it. Here a percentage is one of the units, which is the same choice said once - and "the rest of the disk" is on the same list because it is the same question. --> <TextBlock Grid.Row="2" Grid.Column="0" x:Name="HDTVolumeSizeLabel" /> <Grid Grid.Row="2" Grid.Column="1" Margin="0,0,0,10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="90" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBox Grid.Column="0" x:Name="HDTVolumeSizeBox" Margin="0,0,8,0" /> <ComboBox Grid.Column="1" x:Name="HDTVolumeUnitBox" DisplayMemberPath="Display" /> </Grid> <TextBlock Grid.Row="3" Grid.Column="0" x:Name="HDTVolumeFileSystemLabel" /> <ComboBox Grid.Row="3" Grid.Column="1" x:Name="HDTVolumeFileSystemBox" Margin="0,0,0,10"> <ComboBoxItem Content="(default)" IsSelected="True" /> <ComboBoxItem Content="NTFS" /> <ComboBoxItem Content="FAT32" /> </ComboBox> <TextBlock Grid.Row="4" Grid.Column="0" x:Name="HDTVolumeVariableLabel" /> <TextBox Grid.Row="4" Grid.Column="1" x:Name="HDTVolumeVariableBox" Margin="0,0,0,14" /> <CheckBox Grid.Row="5" Grid.Column="1" x:Name="HDTVolumeQuickFormatCheck" Margin="0,0,0,8" /> <CheckBox Grid.Row="6" Grid.Column="1" x:Name="HDTVolumeBootableCheck" /> <!-- WHAT THE REFUSAL SAYS, WHERE IT WAS CAUSED. OK runs the command; if the command refuses - a size the engine cannot read, a second boot partition - the message lands here rather than in a message box over a dialog that has already closed. --> <TextBlock Grid.Row="7" Grid.ColumnSpan="2" x:Name="HDTVolumeMessageText" Foreground="{DynamicResource HDTErrorBrush}" TextWrapping="Wrap" VerticalAlignment="Bottom" Margin="0,12,0,0" /> <StackPanel Grid.Row="8" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,14,0,0"> <Button x:Name="HDTVolumeOkButton" IsDefault="True" /> <!-- NAMED, BUT NOT WIRED. IsCancel is WPF closing its own dialog with DialogResult false and no handler is attached to this button. The name is here for one reason: the string table finds a control by name, and a Cancel with no name is a caption nobody can translate. --> <Button x:Name="HDTCancelButton" IsCancel="True" /> </StackPanel> </Grid> </Window> |