我正在动态创建Grid元素到堆栈面板上。当一个对象被放置在堆栈面板上时,它会触发一个事件,该事件需要确定放置点在StackPanel上引用Grid元素的位置。我正在使用WPF,因此可能会有不同的答案。
例如,我将以下代码在将对象放到网格元素(之前已动态创建)上时调用。
/*Handles Drop Event From Grid Item*/
private void Grid_Drop(object sender,DragEventArgs e)
{
Object droppedData = e.getData(typeof(Object)); //This part is not important
/*Get the Grid that was dropped on*/
Grid grid = (Grid)sender;
/*Translate Drop Point in reference to Stack Panel*/
Point dropPoint = this.TranslatePoint(e.getPosition(this),StackPanel));
}
这是我停止的地方,我需要计算类似下面的内容
IF dropPoint IS ABOVE THE MIDDLE POINT OF THE GRID
DO SOMETHING
ELSE IF THE dropPoint IS BELOW THE MIDDLE POINT OF THE GRID
DO SOMETHING
答案 0 :(得分:1)
为什么不获得网格的相对位置,而不是堆栈面板并将该点与。grid.actualheight / 2进行比较以查看它是高于还是低于?