私たちはOnRenderで独自のカスタム図面を作成するコントロールを持っています。しかし、私たちはあなたが望むなら、様々な図面のパスのためのステンシルの一種として透明性を持つPNGを使いたいと思っています。カスタムドローイングはどうやってマスクを使って行うことができますか?
ImageBrushで単純にPNGを使用し、コントロールのOpacityMaskとして設定できることは既にわかっていますが、いくつかの異なるステンシルを使用していくつかの描画パスを実際に実行したいと考えています。 OpacityMaskのルートに行きたい場合は、別々のコントロールを作成し、ImageMaskを分離し、それらをすべて重ねてスタックすることで、ビジュアルツリーが乱雑になります。
私たちはそれをしたくありません。単一のControl
サブクラスのOnRenderオーバーライドですべての描画を行いたいと考えています。これらの描画呼び出しをイメージで隠すだけでいいです。私たちはそれが終わるまで何度も何度も繰り返したいと思っています。
これはどのようにして行うことができますか?
あなたは自分の質問でイメージでマスクしたいと言った。私はイメージがブラシオブジェクトに埋め込まれると仮定しますか? –
これを行うには 'ImageBrush'を使わなければなりません。描画エリアとイメージが1対1の比率でない場合は、ブラシのプロパティを使用してトリッキーを行う必要があります。どちらか、またはあなたのイメージソースにその寸法を問い合わせて、あなたのコントロールがそれらに従うようにする必要があります。いずれにせよ、それはこれの範囲外です。ただし、Push文は累積的です。たとえば、最初にOpacityMaskをプッシュしてデフォルトの動作をさせた後、独自のマスクを押してから描画します。よく働く! – MarqueIV
それから。ニースのヒント:) –