私はWPFでバグを見つけた可能性があります。あるいは、OpacityMasksのしくみを完全に理解できていないかもしれません。あなたが最初のイメージで見ることができるように、私はダイヤモンド形の道と赤い円を持っています。私の目標は、ダイヤモンドの外のすべてを見えないようにすることです。円が菱形の中にあるときに機能しますが、コーナーの1つまたはパスの外側に移動するたびに、2番目の画像で見られるように、OpacityMaskが伸びたり歪んだように見えます。私の質問は、円(または他の子要素)がどこにあるかにかかわらず、どのようにOpacityMaskを動作させることができるかです。WPF OpacityMask奇妙な振る舞い
そして、これは私のXAMLコードのリンクで画像を投稿して申し訳ありません
<Grid Name="rootGrid">
<Grid>
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=path}"/>
</Grid.OpacityMask>
<Path Name="path"
Stretch="Fill"
Fill="Cyan"
StrokeThickness="1"
Stroke="GreenYellow"
Data="M 0,-1 1,0 0,1 -1,0 0,-1"/>
<Ellipse Fill="Red"
Margin="20,-17,22,61"/>
</Grid>
</Grid>
ですが、私は直接画像を埋め込むのに十分な評判を持っていません。
ご協力いただきましてありがとうございます。
これはバグではありません。 VisualBrushは、-17からグリッドのActualHeightまで垂直に表示されるグリッド領域全体に引き伸ばされます。 VisualBrushで 'ViewportUnits =" Absolute "を設定し、そのViewportプロパティを適切な矩形に設定します。 'Viewport =" 0,0,100,100 "' – Clemens
ありがとう、これは私の問題を解決しました。 –