Я не уверен, что вы можете установить свойства для элементов управления вне области действия элемента управления с назначенным ему стилем. Даже если это возможно, это кажется неправильным.
В вашем сценарии вы можете использовать триггеры событий и раскадровки, определенные везде, где они будут видны обеим кнопкам. Вот пример того, как изменить BtnLeft, хотя я бы предпочел расположить раскадровки немного дальше вверх по дереву, чтобы при необходимости их можно было использовать повторно:
<Button Margin="0,0,0,0" Content="Button" Grid.Row="0" x:Name="BtnLeft" Style="{DynamicResource ButtonStyle1}">
<Button.Resources>
<Storyboard x:Key="OnMouseEnter1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetName="BtnRight"
Storyboard.TargetProperty="Width">
<SplineDoubleKeyFrame KeyTime="00:00:00.5" Value="75"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMouseLeave1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetName="BtnRight"
Storyboard.TargetProperty="Width">
<SplineDoubleKeyFrame KeyTime="00:00:00.5" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Button.Resources>
<Button.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="BtnLeft">
<BeginStoryboard Storyboard="{StaticResource OnMouseEnter1}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="BtnLeft">
<BeginStoryboard Storyboard="{StaticResource OnMouseLeave1}"/>
</EventTrigger>
</Button.Triggers>
</Button>
Вместо свойства IsMouseOver вы можете использовать события MouseEnter и MouseLeave. Это должно дать вам ту же функциональность.
Edit: свойство SourceName
может быть опущено из EventTrigger
, когда этот триггер определен в области действия кнопки.