Это то, что вам нужно:
Datatrigger привязан к контролю, чтобы вызвать его
В качестве альтернативы вы можете использовать конвертер типа BoolenToInvisibilityConverter
Ps, если вы хотите инвертировать логику, вам нужно установить видимость в стиле, как это было бы перезаписано в других случаях
<StackPanel>
<Rectangle Fill="Red" Height="20" Width="29" Name="MyRect"/>
<Button>
<Button.Style>
<Style TargetType="Button">
<!--<Setter Property="Visibility" Value="Hidden"/>-->
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=MyRect, Path=IsMouseOver}" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>
ландшафт триггера в Wpf иногда может сбивать с толку, не волнуйтесь, вы научитесь жить с ним!