UIElement
(矩形/領域/境界)を検索する必要があります。私は次のことをやっているWPFの矩形でUIElementsを検索するにはどうすればよいですか?
メインウィンドウ:
- は私がダウン開始位置としてマウスを登録します。
- 私はマウスを上に置きます。
- ここでは、開始位置 と終了位置の間の矩形内にll(ボタン、テキストボックスなど)を見つける必要があります。
msdnで見つかったのはHitTest
ですが、これは1つのポイントのみです。私は、設立された 四角形のすべてのポイントを歩いていると、パフォーマンスの災害だと思います。 MVVMパターンに基づいて
http://msdn.microsoft.com/en-us/library/ms752097.aspx
マイコード:
private ObservableCollection<UIElementViewModel> wells;
private Point stratPoint; // Mouse down
public ICommand MouseUpRightCommand
{
get
{
if (this.mouseUpRightCommand == null)
{
this.mouseUpRightCommand = new RelayCommands(
param =>
{
if (param is MouseButtonEventArgs)
{
var e = (param as MouseButtonEventArgs);
//Set the end point
endPosition = e.GetPosition(((ItemsControl)e.Source));
// for example, here I want to find all controls(UIElements) in the
// founded rectangle of stratPoint and endPosition.
}
});
}
return this.mouseUpRightCommand;
}
}
その他のアイデアやより良い方法?
おかげ
これはとてもうれしいです。 –
こんにちはastreal、答えていただきありがとうございますが、このアプローチはMVVMパターンを傷つけます:ObservableCollection viewModelのwellsはFrameWorkElementがViewです。 –
あなたは正しいです。 しかし、ここで見てください: [リンク](http://stackoverflow.com/questions/1083224/pushing-read-only-gui-properties-back-into-viewmodel) そして、FramworkElementViewModelを作成することがあります – astreal