title: ListBoxItem style in <ListBox.Resources> or in <ListBox.ItemContainerStyle>?
body: <p>I can put a xaml <code>Style</code> for <code>ListBoxItem</code> in <code>&lt;ListBox.Resources&gt;</code> or in <code>&lt;ListBox.ItemContainerStyle&gt;</code>. See code.<br>
  Question is: what is the difference, what should I prefer?   </p>
  
  <pre><code>&lt;ListBox.Resources&gt;
      &lt;Style TargetType="ListBoxItem"&gt;
          &lt;Setter Property="Canvas.Top" Value="{Binding Top}"/&gt;
          &lt;Setter Property="Canvas.Left" Value="{Binding Left}"/&gt;
          &lt;Setter Property="VerticalContentAlignment" Value="Stretch"/&gt;
          &lt;Setter Property="HorizontalContentAlignment" Value="Stretch"/&gt;
          &lt;Setter Property="Padding" Value="0"/&gt;
      &lt;/Style&gt;
  &lt;/ListBox.Resources&gt;
  </code></pre>
  
  <p>OR:</p>
  
  <pre><code>&lt;ListBox.ItemContainerStyle&gt;
      &lt;Style TargetType="ListBoxItem"&gt;
          &lt;Setter Property="Canvas.Top" Value="{Binding Top}"/&gt;
          &lt;Setter Property="Canvas.Left" Value="{Binding Left}"/&gt;
          &lt;Setter Property="VerticalContentAlignment" Value="Stretch"/&gt;
          &lt;Setter Property="HorizontalContentAlignment" Value="Stretch"/&gt;
          &lt;Setter Property="Padding" Value="0"/&gt;
      &lt;/Style&gt;
  &lt;/ListBox.ItemContainerStyle&gt;
  </code></pre>
  
  <p>There is an answer that I accept, but behold and think about this strange symptom:<br>
  <strong>Either way</strong> gives me this strange databinding warning: <em>Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null .... etc.</em><br>
  This is a binding that is hidden somewhere in the system Aero styles, it is not mine.<br>
  Only when I use <strong>both styles</strong> this warning <strong>disappears!</strong></p>