UIElement
(rectangle/area/bounds) で sを見つける必要があります。
私は次のことをやっています:
- マウスダウンを開始位置として登録します。
- マウスアップ位置を登録します。
- ここで、開始位置と終了位置の間の長方形で ll (ボタン、テキストボックスなど) を見つける必要があります。
私はmsdnでHitTest
アプローチを見つけましたが、それは一点だけです。作成された四角形のすべてのポイントを歩くと、パフォーマンスが低下すると思います。
http://msdn.microsoft.com/en-us/library/ms752097.aspx
MVVM パターンに基づく私のコード:
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;
}
}
他のアイデアやより良いアプローチはありますか?
ありがとう