2

私は C# WPF アプリケーションを使用しており、いくつかの可能な画像があり、画像内に不規則な形状を持つものがあります。画像内のさまざまな形状をクリックすると、さまざまなイベントを生成したいと思います。

例: 画像が家の正面の場合、ドアノブ、ドア、窓、屋根などをクリックすると、さまざまなイベントが生成されます。

画像はサイズ変更可能である必要があります。

グリッドとシェイプを使用して手動で行うこともできますが、もっとエレガントな方法があるはずです。

元のような「影」画像を作成できるテクニックを見たと思いましたが、クリック可能な領域ごとに異なる色で塗りつぶされています。(クリック可能な領域の「カラー マップ」。) 次に、クリック ハンドラーは影の画像の色にアクセスし、適切なイベントを発生させることができます。ただし、表示画像の「下」にある影の画像を非表示にして、クリックイベントハンドラーに色を取得させる方法がわかりませんでした。

これを処理する良い方法があると確信しています。通常、画像を扱うことはないので、完全に無知です。

ありがとう。

4

1 に答える 1

1

「影の画像」よりも Z オーダーでナイスな画像を高く設定し、topImage.IsHitTestVisible = false; を設定するのはどうですか。

これにより、クリックが上部の表示されている画像をバイパスし、下にある影の画像のクリック ハンドラーに直接移動します。

プロダクション コードで使用したもう 1 つの手法は、Image から新しいクラスを派生させ、HitTestCore をオーバーライドして、ピクセル値を自分でテストし、特定の色または不透明度の場合は別のオブジェクトを返すことです。このようにして、すべてのアクションを制御します。

于 2012-12-06T00:19:59.130 に答える