0

私のアプリでは、タグ付きオブジェクトを使用しています。ここで、表面に配置されたオブジェクトだけでなく、配置された要素に対しても異なる反応を示したいと思います。これはどういうわけか可能ですか?それについての情報は見つかりませんでした。

4

2 に答える 2

2

HitTest を実行できます。基本的に、ウィンドウに相対的なポイントを取得し、ビジュアル ツリーのどの要素がヒットしているかを調べます。手元にコード サンプルはありませんが、Google で HitTest と WPF を使用して多くのことを見つけることができます。

于 2010-11-11T10:42:53.463 に答える
1

はい、可能です。より良いサポートができるように、コードを提示してください。

あなたが探しているのは、おそらくリフレクションです。

is演算子を使用すると、オブジェクトが特定のタイプであるかどうかをいつでも確認できることをご存知ですか?

var tag = myDependencyObject.Tag;
if(myDependencyObject is CheckBox)
{
    //...
}
else if(myDependencyObject is TextBox)
{
    //...
}

タグ プロパティの変更を検出するには、次のように DependencyPropertyChanged イベントをリッスンします。

DependencyPropertyDescriptor prop = DependencyPropertyDescriptor.FromProperty(
    FrameworkElement.TagProperty,
    typeof(FrameworkElement));

prop.AddValueChanged(aTaggedControl, this.YourEventHandlerMethod);
于 2010-11-01T16:06:48.790 に答える