Views/MainWindow.xaml

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Start Layout Designer"
    Height="760"
    Width="1120"
    MinHeight="650"
    MinWidth="960"
    WindowStartupLocation="CenterScreen"
    Background="#EEF2F7"
    FontFamily="Segoe UI">
    <Window.Resources>
        <SolidColorBrush x:Key="PanelBrush" Color="#FFFFFF" />
        <SolidColorBrush x:Key="BorderBrushSoft" Color="#D7DEE8" />
        <SolidColorBrush x:Key="TextBrush" Color="#182230" />
        <SolidColorBrush x:Key="MutedBrush" Color="#667085" />
        <SolidColorBrush x:Key="AccentBrush" Color="#2563EB" />
 
        <Style TargetType="Button">
            <Setter Property="MinHeight" Value="34" />
            <Setter Property="Margin" Value="4" />
            <Setter Property="Padding" Value="14,5" />
            <Setter Property="Background" Value="#2563EB" />
            <Setter Property="Foreground" Value="#FFFFFF" />
            <Setter Property="BorderBrush" Value="#1D4ED8" />
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="FontWeight" Value="SemiBold" />
        </Style>
        <Style x:Key="SecondaryButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
            <Setter Property="Background" Value="#FFFFFF" />
            <Setter Property="Foreground" Value="#344054" />
            <Setter Property="BorderBrush" Value="#CBD5E1" />
        </Style>
        <Style TargetType="ListBox">
            <Setter Property="Background" Value="#FFFFFF" />
            <Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}" />
            <Setter Property="BorderThickness" Value="1" />
        </Style>
        <Style TargetType="TextBox">
            <Setter Property="MinHeight" Value="34" />
            <Setter Property="Padding" Value="10,6" />
            <Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}" />
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="Background" Value="#FFFFFF" />
            <Setter Property="Foreground" Value="{StaticResource TextBrush}" />
        </Style>
        <Style TargetType="GroupBox">
            <Setter Property="Background" Value="{StaticResource PanelBrush}" />
            <Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}" />
            <Setter Property="Foreground" Value="{StaticResource TextBrush}" />
            <Setter Property="FontWeight" Value="SemiBold" />
        </Style>
        <Style TargetType="TabControl">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="BorderThickness" Value="0" />
        </Style>
        <Style TargetType="TabItem">
            <Setter Property="Padding" Value="18,8" />
            <Setter Property="FontWeight" Value="SemiBold" />
            <Setter Property="Foreground" Value="#344054" />
        </Style>
        <DataTemplate x:Key="AppTemplate">
            <Grid Margin="6">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="42" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Border Width="34" Height="34" Background="#EFF4FF" BorderBrush="#C7D7FE" BorderThickness="1" CornerRadius="8">
                    <Image Source="{Binding IconSource}" Width="22" Height="22" Stretch="Uniform" />
                </Border>
                <StackPanel Grid.Column="1" Margin="8,1,0,0">
                    <TextBlock Text="{Binding Name}" FontWeight="SemiBold" Foreground="{StaticResource TextBrush}" TextTrimming="CharacterEllipsis" />
                    <TextBlock Text="{Binding PinSummary}" FontSize="11" Foreground="#667085" TextTrimming="CharacterEllipsis" />
                </StackPanel>
            </Grid>
        </DataTemplate>
    </Window.Resources>
 
    <DockPanel>
        <Border DockPanel.Dock="Top" Background="#FFFFFF" BorderBrush="#D7DEE8" BorderThickness="0,0,0,1" Padding="22,16">
            <StackPanel HorizontalAlignment="Center">
                <TextBlock Text="Start Layout Designer" FontSize="24" FontWeight="SemiBold" Foreground="{StaticResource TextBrush}" TextAlignment="Center" HorizontalAlignment="Center" />
                <TextBlock Text="Customize Windows 11 Start Menu and " Foreground="{StaticResource MutedBrush}" TextAlignment="Center" HorizontalAlignment="Center" Margin="0,4,0,0" />
            </StackPanel>
        </Border>
 
        <TabControl Margin="18">
            <TabItem Header="Start Layout">
                <Grid Margin="0,12,0,0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="150" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*" />
                        <RowDefinition Height="230" />
                    </Grid.RowDefinitions>
 
                    <GroupBox Header="Available apps" Grid.Column="0" Margin="0,0,8,8">
                        <DockPanel Margin="8">
                            <StackPanel DockPanel.Dock="Top" Margin="0,0,0,8">
                                <DockPanel>
                                    <Button Name="RefreshStartButton" Content="Refresh" Style="{StaticResource SecondaryButton}" DockPanel.Dock="Right" HorizontalAlignment="Right" />
                                    <TextBox Name="StartSearchBox" Margin="4" ToolTip="Type to filter apps. Press Enter to add the selected or first match." />
                                </DockPanel>
                                <TextBlock Name="StartSearchStatus" Foreground="{StaticResource MutedBrush}" FontSize="11" Margin="8,0,0,0" />
                            </StackPanel>
                            <ListBox Name="AvailableStartList" SelectionMode="Extended" ItemTemplate="{StaticResource AppTemplate}" />
                        </DockPanel>
                    </GroupBox>
 
                    <StackPanel Grid.Column="1" Grid.Row="0" VerticalAlignment="Center">
                        <Button Name="AddStartButton" Content="Add >" />
                        <Button Name="RemoveStartButton" Content="&lt; Remove" Style="{StaticResource SecondaryButton}" />
                        <Separator Margin="8" />
                        <Button Name="StartUpButton" Content="Move Up" Style="{StaticResource SecondaryButton}" />
                        <Button Name="StartDownButton" Content="Move Down" Style="{StaticResource SecondaryButton}" />
                    </StackPanel>
 
                    <GroupBox Header="Selected Start pins" Grid.Column="2" Margin="8,0,0,8">
                        <DockPanel Margin="8">
                            <CheckBox Name="ApplyOnceCheck" Content="Apply once" Margin="4,0,0,8" DockPanel.Dock="Top" />
                            <ListBox Name="SelectedStartList" SelectionMode="Extended" ItemTemplate="{StaticResource AppTemplate}" />
                        </DockPanel>
                    </GroupBox>
 
                    <GroupBox Header="Generated Start JSON" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,8,0,0">
                        <DockPanel Margin="8">
                            <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" HorizontalAlignment="Right">
                                <Button Name="ImportStartButton" Content="Import JSON" Style="{StaticResource SecondaryButton}" />
                                <Button Name="ExportStartButton" Content="Export JSON" />
                                <Button Name="DeployStartButton" Content="Deploy" />
                            </StackPanel>
                            <TextBox Name="StartPreview" FontFamily="Consolas" FontSize="12" IsReadOnly="True" AcceptsReturn="True" AcceptsTab="True" TextWrapping="NoWrap" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" />
                        </DockPanel>
                    </GroupBox>
                </Grid>
            </TabItem>
 
            <TabItem Header="Taskbar">
                <Grid Margin="0,12,0,0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="150" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*" />
                        <RowDefinition Height="230" />
                    </Grid.RowDefinitions>
 
                    <GroupBox Header="Available apps" Grid.Column="0" Margin="0,0,8,8">
                        <DockPanel Margin="8">
                            <StackPanel DockPanel.Dock="Top" Margin="0,0,0,8">
                                <DockPanel>
                                    <Button Name="RefreshTaskbarButton" Content="Refresh" Style="{StaticResource SecondaryButton}" DockPanel.Dock="Right" HorizontalAlignment="Right" />
                                    <TextBox Name="TaskbarSearchBox" Margin="4" ToolTip="Type to filter apps. Press Enter to add the selected or first match." />
                                </DockPanel>
                                <TextBlock Name="TaskbarSearchStatus" Foreground="{StaticResource MutedBrush}" FontSize="11" Margin="8,0,0,0" />
                            </StackPanel>
                            <ListBox Name="AvailableTaskbarList" SelectionMode="Extended" ItemTemplate="{StaticResource AppTemplate}" />
                        </DockPanel>
                    </GroupBox>
 
                    <StackPanel Grid.Column="1" Grid.Row="0" VerticalAlignment="Center">
                        <Button Name="AddTaskbarButton" Content="Add >" />
                        <Button Name="RemoveTaskbarButton" Content="&lt; Remove" Style="{StaticResource SecondaryButton}" />
                        <Separator Margin="8" />
                        <Button Name="TaskbarUpButton" Content="Move Up" Style="{StaticResource SecondaryButton}" />
                        <Button Name="TaskbarDownButton" Content="Move Down" Style="{StaticResource SecondaryButton}" />
                    </StackPanel>
 
                    <GroupBox Header="Selected taskbar pins" Grid.Column="2" Margin="8,0,0,8">
                        <DockPanel Margin="8">
                            <CheckBox Name="ReplaceTaskbarCheck" Content="Replace default pins" Margin="4,0,0,8" DockPanel.Dock="Top" />
                            <ListBox Name="SelectedTaskbarList" SelectionMode="Extended" ItemTemplate="{StaticResource AppTemplate}" />
                        </DockPanel>
                    </GroupBox>
 
                    <GroupBox Header="Generated taskbar XML" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,8,0,0">
                        <DockPanel Margin="8">
                            <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" HorizontalAlignment="Right">
                                <Button Name="ImportTaskbarButton" Content="Import XML" Style="{StaticResource SecondaryButton}" />
                                <Button Name="ExportTaskbarButton" Content="Export XML" />
                                <Button Name="DeployTaskbarButton" Content="Deploy" />
                            </StackPanel>
                            <TextBox Name="TaskbarPreview" FontFamily="Consolas" FontSize="12" IsReadOnly="True" AcceptsReturn="True" AcceptsTab="True" TextWrapping="NoWrap" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" />
                        </DockPanel>
                    </GroupBox>
                </Grid>
            </TabItem>
        </TabControl>
    </DockPanel>
</Window>