title: WPF using StackPanel within a a menu
body: <p>I have a wpf application where I am using a side menu.  In one section of the menu I have a Header menuitem and two sub menuitems.  I change the background on the two sub menuitems to show a difference.  There is a slight gap between the two sub menuitems with a different color.  I want the background of both sub menuites to be the same with not gap in between.  Here is my menu code:</p>
  
  <pre><code>&lt;MenuItem x:Name="miReplaceLF" Header="Replace Line Feeds" Height="24" VerticalAlignment="Center"
            ToolTip="Replace all line feeds in choosen fields with the replacement character." /&gt;
  &lt;MenuItem x:Name="smiDBFile" Header="DataBase Table"
             Click="MenuItem_Click_RLFDBDatabase" Background="#FFBEEBF7"
             Margin="15,0,0,0"
             ToolTip="Replace line feeds on fields in a database table." /&gt;
  &lt;MenuItem x:Name="smiExcelTextFile" Header="Excel or Text File" Height="24" 
              VerticalAlignment="Top" Click="MenuItem_Click_RLFExcelText" Background="#FFBEEBF7"
              Margin="15,0,0,0"
              ToolTip="Choose a Excel/Text File." /&gt;
  </code></pre>
  
  <p>I tried putting the two sub menuitems within a stackpanel.  This gives me the ability to have the uniform background I want but the sub menuitems are shifted to the right way too much.  I just want a small indent on the two sub menuitem.  I can't find a way to get the menuitems alligned to the left.  Here is the code with the stackpanel.</p>
  
  <pre><code>&lt;MenuItem x:Name="miReplaceLF" Header="Replace Line Feeds" Height="24" VerticalAlignment="Center"
                    ToolTip="Replace all line feeds in choosen fields with the replacement character." /&gt;
          &lt;StackPanel Background="#FFBEEBF7"&gt;
              &lt;MenuItem x:Name="smiDBFile" Header="DataBase Table"
                     Click="MenuItem_Click_RLFDBDatabase" Background="#FFBEEBF7"
                     Margin="0,0,0,0"
                     ToolTip="Replace line feeds on fields in a database table." /&gt;
              &lt;MenuItem x:Name="smiExcelTextFile" Header="Excel or Text File" Height="24" 
                      Click="MenuItem_Click_RLFExcelText" Background="#FFBEEBF7"
                      Margin="0,0,0,0"
                      ToolTip="Choose a Excel/Text File." /&gt;
          &lt;/StackPanel&gt;
  </code></pre>
  
  <p>Here is the full XAML code, this has been changed to use the suggestions by Ed Plunkett</p>
  
  <pre><code>&lt;Window x:Class="TextUtilities.MainWindow"
          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:TextUtilities"
          mc:Ignorable="d"
          Title="Text Utilites" x:Name="TextUtils" Height="420" Width="900" Left="100" Top="30" 
          ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" Background="#FFDBF4FB"&gt;
  
      &lt;Window.Resources&gt;
          &lt;Style 
              TargetType="MenuItem" 
              BasedOn="{StaticResource {x:Type MenuItem}}" 
              x:Key="RLFItem"&gt;
              &lt;Setter Property="Margin" Value="15,0,0,0" /&gt;
              &lt;Setter Property="Background" Value="#FFBEEBF7" /&gt;
          &lt;/Style&gt;
      &lt;/Window.Resources&gt;
      &lt;Grid&gt;
          &lt;Menu HorizontalAlignment="Left" Width="150" Margin="0,2,0,0" FontFamily="Arial" FontSize="14.667" 
                BorderThickness="0,2,2,0" BorderBrush="#FFE0E0E0" Background="#FFDBF4FB"&gt;
              &lt;Menu.ItemsPanel&gt;
                  &lt;ItemsPanelTemplate&gt;
                      &lt;StackPanel x:Name="spItemsPanel" Background="#FFDBF4FB" /&gt;
                  &lt;/ItemsPanelTemplate&gt;
              &lt;/Menu.ItemsPanel&gt;
  
  
              &lt;MenuItem x:Name="miReplaceLF" Header="Replace Line Feeds" Height="24" VerticalAlignment="Center"
                  ToolTip="Replace all line feeds in choosen fields with the replacement character."/&gt;
              &lt;MenuItem x:Name="smiDBFile" Header="DataBase Table" Height="24" 
                  Style="{StaticResource RLFItem}" Click="MenuItem_Click_RLFDBDatabase"
                  ToolTip="Replace line feeds on fields in a database table." /&gt;
              &lt;MenuItem x:Name="smiExcelTextFile" Header="Excel or Text File" Height="24"
                  Style="{StaticResource RLFItem}" Click="MenuItem_Click_RLFExcelText" 
                  ToolTip="Choose a Excel/Text File." /&gt;
  
              &lt;MenuItem x:Name="miCreateLF" Header="Create Line Feeds" Height="24" VerticalAlignment="Center" ToolTip="Replace all the replacement characters with line feeds." /&gt;
              &lt;MenuItem x:Name="miViewTextField" Header="View Text Field" Height="24" VerticalAlignment="Center" Click="MenuItem_Click_ViewTextField" ToolTip="Display the contents of a text field.  Allows you to see how the data will be displayed in the UI." /&gt;
              &lt;MenuItem x:Name="miViewSPTEXT" Header="View SPTEXT" Height="24" VerticalAlignment="Center" Click="MenuItem_Click_ViewSPTEXT" ToolTip="Display field sptd_text from table sptextdt.  Allows you to see how the data will be displayed in the UI." /&gt;
              &lt;MenuItem x:Name="miSPlitLargeFile" Header="Split Large File" Height="24" VerticalAlignment="Center" Click="MenuItem_Click_SLF" ToolTip="Split large files, over 60MB into smaller files." /&gt;
              &lt;MenuItem x:Name="miHowTo" Header="How To" Height="24" VerticalAlignment="Center" Click="MenuItem_Click_HowTo" ToolTip="Instructions on how to use the SPText Utilities." /&gt;
              &lt;Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" /&gt;
              &lt;MenuItem Header="Close" Height="24" VerticalAlignment="Center" Click="MenuItem_Click_Close" /&gt;
          &lt;/Menu&gt;
  
          &lt;Grid x:Name="grdRLFDatabase" Visibility="Visible" Height="350" Margin="155,0,0,0" VerticalAlignment="Top"&gt;
              &lt;TextBox x:Name="txtRLFDBTitle" IsReadOnly="True" TextWrapping="Wrap" 
                       Text="Process to clean a database table and create a pipe delimited text file. You may type in a server instance or select one from the list.  Once a server is choosen please cliack the 'Load DB Info' button." 
                       HorizontalAlignment="Left" Height="62" Margin="10,4,0,0" VerticalAlignment="Top" Width="659" FontFamily="Arial" 
                       FontSize="16" Padding="5,1,1,1" Background="#FFDBF4FB" BorderBrush="Gray" BorderThickness="1"/&gt;
              &lt;Label x:Name="lblRLFDBInstance" Content="Enter Database Instance:" HorizontalAlignment="Left" Height="28" Margin="5,87,0,0" VerticalAlignment="Top" Width="175" FontFamily="Arial" FontSize="14.667"/&gt;
              &lt;ComboBox x:Name="cbxRLFDBInstances" x:FieldModifier="public" HorizontalAlignment="Left" Height="28" Margin="189,87,0,0" VerticalAlignment="Top" Width="250" FontFamily="Arial" FontSize="14.667" IsEditable="True"/&gt;
              &lt;Button x:Name="btnRLFDBLoadDBInfo" Content="Load DB Info" HorizontalAlignment="Left" Height="26" Margin="475,89,0,0" VerticalAlignment="Top" Width="101" FontFamily="Arial" FontSize="14.667" Click="btnRLFDBLoadDBInfo_Click" Background="#FFEEFFFF" ToolTip="Click here after choosing or typing in the datbase instance.  This will populate the database list."/&gt;
              &lt;Label x:Name="lblRLFDBName" Content="Choose Database:" HorizontalAlignment="Left" Height="28" Margin="5,131,0,0" VerticalAlignment="Top" Width="175" FontFamily="Arial" FontSize="14.667"/&gt;
              &lt;ComboBox x:Name="cbxRLFDBName" x:FieldModifier="public" HorizontalAlignment="Left" Height="28" Margin="189,132,0,0" VerticalAlignment="Top" Width="250" FontFamily="Arial" FontSize="14.667" IsEditable="True" SelectionChanged="cbxRLFDBName_SelectionChanged" ToolTip="Once a database is choosen the table list will automatically be populated."/&gt;
              &lt;Label x:Name="lblRLFDBTableName" Content="Choose Table:" HorizontalAlignment="Left" Height="28" Margin="5,176,0,0" VerticalAlignment="Top" Width="175" FontFamily="Arial" FontSize="14.667"/&gt;
              &lt;ComboBox x:Name="cbxRLFDBTableName" x:FieldModifier="public" HorizontalAlignment="Left" Height="28" Margin="189,177,0,0" VerticalAlignment="Top" Width="250" FontFamily="Arial" FontSize="14.667" IsEditable="True" /&gt;
              &lt;Label x:Name="lblRLFDBOutputName" Content="Choose Output Folder:" HorizontalAlignment="Left" Height="28" Margin="5,233,0,0" VerticalAlignment="Top" Width="175" FontFamily="Arial" FontSize="14.667"/&gt;
              &lt;TextBox x:Name="txtRLFDBOutputFolder" x:FieldModifier="public" IsReadOnly="True" HorizontalAlignment="Left" Height="50" Margin="189,222,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="250" FontFamily="Arial" FontSize="14.667" /&gt;
              &lt;Button x:Name="btnRLFDBBrowseFolder" Content="Browse..." x:FieldModifier="public" HorizontalAlignment="Left" Height="26" Margin="475,235,0,0" VerticalAlignment="Top" Width="74" FontFamily="Arial" FontSize="14.667" Background="#FFEEFFFF" Click="btnRLFDBBrowseFolder_Click" ToolTip="Choose the folder where the text file will be saved to.  The file will be named the same as a the table with '_duc' appended to the end."/&gt;
              &lt;Button x:Name="btnRLFDBSubmit" Content="Submit" x:FieldModifier="public" HorizontalAlignment="Left" Height="26" Margin="261,300,0,0" VerticalAlignment="Top" Width="74" FontFamily="Arial" FontSize="14.667" Background="#FFEEFFFF" Click="btnRLFDBSubmit_Click"/&gt;
          &lt;/Grid&gt;
  
          &lt;Grid x:Name="grdRLFExcelText" Visibility="Hidden" Height="320" Width="750" Margin="150, 0, 0 0" VerticalAlignment="Top"&gt;
              &lt;Label x:Name="lblRLFFileInfo" Content="Process to replace Line Feeds in text fields." HorizontalAlignment="Left" Margin="3,15,0,0" VerticalAlignment="Top" Width="583" Height="30" FontFamily="Arial" FontSize="18.667" FontWeight="Bold"/&gt;
              &lt;Label x:Name="lblRLFFileName" Content="Enter the filename:" HorizontalAlignment="Left" Margin="3,79,0,0" VerticalAlignment="Top" Width="162" Height="30" FontFamily="Arial" FontSize="16"/&gt;
              &lt;TextBox x:Name="txtRLFFileName" HorizontalAlignment="Left" Height="50" Margin="186,70,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="400" VerticalContentAlignment="Center" FontFamily="Arial" FontSize="16" FontWeight="Bold" Background="#FFDBF4FB" TextChanged="txtRLFFileName_TextChanged" /&gt;
              &lt;Button x:Name="btnRLFFileBrowse" Content="Browse..." HorizontalAlignment="Left" Margin="630,84,0,0" VerticalAlignment="Top" Width="89" FontFamily="Arial" FontSize="16" Background="#FFDBF4FB" Click="btnRLFFileBrowse_Click"/&gt;
              &lt;Label x:Name="lblRLFOutputFolder" Content="Choose output folder:" HorizontalAlignment="Left" Margin="3,149,0,0" VerticalAlignment="Top" Width="180" Height="30" FontFamily="Arial" FontSize="16"/&gt;
              &lt;TextBox x:Name="txtRLFOutputFolder" HorizontalAlignment="Left" Height="50" Margin="186,138,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="400" VerticalContentAlignment="Center" FontFamily="Arial" FontSize="16" FontWeight="Bold" Background="#FFDBF4FB" TextChanged="txtRLFOutputFolder_TextChanged"/&gt;
              &lt;Button x:Name="btnRLFFolderBrowse" Content="Browse..." HorizontalAlignment="Left" Margin="630,154,0,0" VerticalAlignment="Top" Width="89" FontFamily="Arial" FontSize="16" Background="#FFDBF4FB" Click="btnRLFFolderBrowse_Click"/&gt;
              &lt;Label x:Name="lblRLFFieldDelim" Content="Field Delimiter:" HorizontalAlignment="Left" Margin="190,202,0,0" VerticalAlignment="Top" Width="118" Height="30" FontFamily="Arial" FontSize="16"/&gt;
              &lt;TextBox x:Name="txtRLFFieldDelim" HorizontalAlignment="Left" Height="22" Margin="312,206,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="18" VerticalContentAlignment="Center" FontFamily="Arial" FontSize="16" FontWeight="Bold" Background="#FFDBF4FB" TextChanged="txtRLFFileName_TextChanged" MaxLength="2" HorizontalContentAlignment="Center" /&gt;
              &lt;CheckBox x:Name="chbxRLFHeaders" Content="Has Header Row" HorizontalAlignment="Left" Height="17" Margin="430,208,0,0" VerticalAlignment="Top" Width="149" FontFamily="Arial" FontSize="16" Checked="chbxRLFHeaders_Checked" Unchecked="chbxRLFHeaders_Unchecked"/&gt;
              &lt;Button x:Name="btnRLFSubmit" Content="Submit" HorizontalAlignment="Left" Margin="319,259,0,0" VerticalAlignment="Top" Width="82" Height="31" Background="#FFDBF4FB" FontFamily="Arial" FontSize="16" Click="btnRLFSubmit_Click"/&gt;
          &lt;/Grid&gt;
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>