There are several ways to accomplish this:
You could make your style the default for all TreeViewItems:
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
The difference is that you do not set the x:Key attribute, but you do set the TargetType attribute. You do not need to set the ItemContainerStyle on your TreeView in this case.
You could also set your style as the default style for all TreeViewItems, but only within your TreeView:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
</TreeView.Resources>
</TreeView>
In this case you also do not need to set the ItemContainerStyle on your TreeView.
You could also alter your style as follows
<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
<Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>
In this case you'd still have to set the ItemContainerStyle on your TreeView.