Eh no, riepilogo se ho capito quello che vuoi fare:
- livello 0 (più basso): l'immagine di qualcosa
- livello 1 (sopra al livello 0): un rettangolo in semitrasparenza che opacizza l'immagine
- livello 2 (sopra al livello 1): che "apra una finestra" sul livello 1, annullando in un certo riquadro, di fatto, il livello 1, magari portando la trasparenza del livello 1 a 100%, ma solo in corrispondenza del riquadro del livello 2.
Mi sa che non si può fare.
Per risolvere il problema, puoi creare la tua "maschera" con 3 rettangolo, composti insieme.
Potresti creare una sorta di maschera costruendola con diversi rettangoli, poi da codice potrai fare l'engine che passato un rectangle, lui calcola i 4 rettangoli necessari per generare l'effetto maschera.
<Canvas Grid.ColumnSpan="3" Grid.RowSpan="3">
<Canvas.Background>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="Red" Offset="0.142" />
<GradientStop Color="White" Offset="1" />
<GradientStop Color="#FFB8FF47" Offset="0.449" />
<GradientStop Color="#FFA0A0FF" Offset="0.756" />
</LinearGradientBrush>
</Canvas.Background>
<Rectangle Canvas.Left="0" Canvas.Top="0" Width="197" Height="480" Name="rectangle1" StrokeThickness="0" Fill="#76797979" />
<Rectangle Canvas.Left="428" Canvas.Top="0" Fill="#76797979" Height="480" Name="rectangle2" StrokeThickness="0" Width="212" />
<Rectangle Canvas.Left="197" Canvas.Top="307" Fill="#76797979" Height="173" Name="rectangle3" StrokeThickness="0" Width="231" />
<Rectangle Canvas.Left="197" Canvas.Top="0" Fill="#76797979" Height="173" Name="rectangle4" StrokeThickness="0" Width="231" />
</Canvas>
Incolta questo XAML in una pagina, così da vedere cosa intendo come risultato finale.
Non so se può essere una soluzione nel contesto in cui ti trovi.