Измените свой Window.Resources на это:
<Window.Resources>
<Style x:Key="MouseOverHighlightStyle" TargetType="Rectangle">
<Setter Property="Fill" Value="Red" />
<Setter Property="Opacity" Value="0" />
<Setter Property="Grid.Column" Value="0" />
<Setter Property="Grid.ColumnSpan" Value="{Binding Path=ColumnDefinitions.Count, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.3" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
Там вы получаете свой родительский (Grid в этом примере) ColumnDefinition.Count и установите его в columnSpan вашего Rectangle.Я только что попробовал и он работает, так что дайте мне знать, если он работает и для вас