GUI/CatalogDialog.xaml

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Update Catalog Search"
    Width="920"
    Height="560"
    Background="#FFFFFF"
    FontFamily="Segoe UI"
    WindowStartupLocation="CenterOwner">
    <Grid Margin="5">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
 
        <!-- Search bar -->
        <Grid Grid.Row="0" Margin="5">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <TextBox
                x:Name="SearchTextBox"
                Grid.Column="0"
                Margin="5"
                ToolTip="Search term or KB number" />
            <Button
                x:Name="SearchButton"
                Grid.Column="1"
                Width="90"
                Margin="5"
                Content="Search" />
        </Grid>
 
        <!-- Filters -->
        <Grid Grid.Row="1" Margin="5">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
 
            <!-- Operating System -->
            <StackPanel
                Grid.Column="0"
                Margin="5"
                VerticalAlignment="Center"
                Orientation="Vertical">
                <TextBlock
                    Margin="5"
                    HorizontalAlignment="Left"
                    Text="Operating system" />
                <ComboBox
                    x:Name="OperatingSystemComboBox"
                    Width="200"
                    Margin="5"
                    HorizontalAlignment="Left" />
            </StackPanel>
 
            <!-- Release -->
            <StackPanel
                Grid.Column="1"
                Margin="5"
                VerticalAlignment="Center"
                Orientation="Vertical">
                <TextBlock
                    Margin="5"
                    HorizontalAlignment="Left"
                    Text="Release" />
                <ComboBox
                    x:Name="ReleaseComboBox"
                    Width="200"
                    Margin="5"
                    HorizontalAlignment="Left" />
            </StackPanel>
 
            <!-- Architecture -->
            <StackPanel
                Grid.Column="2"
                Margin="5"
                VerticalAlignment="Center"
                Orientation="Vertical">
                <TextBlock
                    Margin="5"
                    HorizontalAlignment="Left"
                    Text="Architecture" />
                <ComboBox
                    x:Name="ArchitectureComboBox"
                    Width="200"
                    Margin="5"
                    HorizontalAlignment="Left" />
            </StackPanel>
 
            <!-- Update Type -->
            <StackPanel
                Grid.Column="3"
                Margin="5"
                VerticalAlignment="Center"
                Orientation="Vertical">
                <TextBlock
                    Margin="5"
                    HorizontalAlignment="Left"
                    Text="Update type" />
                <ComboBox
                    x:Name="UpdateTypeComboBox"
                    Width="200"
                    Margin="5"
                    HorizontalAlignment="Left" />
            </StackPanel>
        </Grid>
 
        <!-- Additional options -->
        <Grid Grid.Row="2" Margin="5">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
 
            <!-- Checkboxes -->
            <UniformGrid
                Grid.Column="0"
                Margin="5"
                Columns="2">
                <CheckBox
                    x:Name="AllPagesCheckBox"
                    Margin="5"
                    Content="All pages" />
                <CheckBox
                    x:Name="IncludePreviewCheckBox"
                    Margin="5"
                    Content="Include preview" />
                <CheckBox
                    x:Name="IncludeDynamicCheckBox"
                    Margin="5"
                    Content="Include dynamic" />
                <CheckBox
                    x:Name="GetFrameworkCheckBox"
                    Margin="5"
                    Content="Only .NET Framework" />
                <CheckBox
                    x:Name="ExcludeFrameworkCheckBox"
                    Margin="5"
                    Content="Exclude .NET Framework" />
                <CheckBox
                    x:Name="StrictCheckBox"
                    Margin="5"
                    Content="Strict phrase" />
                <CheckBox
                    x:Name="IncludeFileNamesCheckBox"
                    Margin="5"
                    Content="Include filenames" />
            </UniformGrid>
 
            <!-- Size and date filters -->
            <StackPanel
                Grid.Column="1"
                VerticalAlignment="Center"
                Orientation="Horizontal">
                <StackPanel Margin="5">
                    <TextBlock Margin="5" Text="Last days:" />
                    <TextBox
                        x:Name="LastDaysTextBox"
                        Width="60"
                        Margin="5" />
                </StackPanel>
                <StackPanel Margin="5">
                    <TextBlock Margin="5" Text="Min size:" />
                    <TextBox
                        x:Name="MinSizeTextBox"
                        Width="60"
                        Margin="5" />
                </StackPanel>
                <StackPanel Margin="5">
                    <TextBlock Margin="5" Text="Max size:" />
                    <TextBox
                        x:Name="MaxSizeTextBox"
                        Width="60"
                        Margin="5" />
                </StackPanel>
                <StackPanel Margin="5" VerticalAlignment="Bottom">
                    <ComboBox
                        x:Name="SizeUnitComboBox"
                        Width="80"
                        Margin="5">
                        <ComboBoxItem Content="MB" IsSelected="True" />
                        <ComboBoxItem Content="GB" />
                    </ComboBox>
                </StackPanel>
            </StackPanel>
        </Grid>
 
        <!-- Results list -->
        <ListView
            x:Name="ResultsList"
            Grid.Row="3"
            Margin="5"
            SelectionMode="Extended">
            <ListView.View>
                <GridView>
                    <GridViewColumn
                        Width="340"
                        DisplayMemberBinding="{Binding Title}"
                        Header="Title" />
                    <GridViewColumn
                        Width="130"
                        DisplayMemberBinding="{Binding Classification}"
                        Header="Classification" />
                    <GridViewColumn
                        Width="130"
                        DisplayMemberBinding="{Binding LastUpdated}"
                        Header="Last Updated" />
                    <GridViewColumn
                        Width="90"
                        DisplayMemberBinding="{Binding Size}"
                        Header="Size" />
                </GridView>
            </ListView.View>
        </ListView>
 
        <!-- Status and buttons -->
        <Grid Grid.Row="4">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <TextBlock
                x:Name="CatalogStatusText"
                Grid.Column="0"
                Margin="5"
                VerticalAlignment="Center"
                Foreground="#2B579A" />
            <StackPanel Grid.Column="1" Orientation="Horizontal">
                <Button
                    x:Name="DownloadButton"
                    Margin="5"
                    Content="Download Selected" />
                <Button
                    x:Name="CopyButton"
                    Margin="5"
                    Content="Copy Details" />
                <Button
                    x:Name="CloseButton"
                    Margin="5"
                    Content="Close" />
            </StackPanel>
        </Grid>
    </Grid>
</Window>