System.Windows.Controls.Image 및 My Grid의 각 RowDefinition에서 레이블과 같은 컨트롤이있는 Grid가 있습니다. 문제는 내가 마우스 오른쪽 버튼을 클릭했을 때 contextmenu가 작동하고 그리드를 다시 얻을 수 있지만 클릭이 발생한 행을 가져올 수없는 경우입니다.GridLot # ContextMenu 액션 가져 오기
- 사용자가 행 경계 내의 아무 요소 나 클릭 할 수 있기를 원하기 때문에 어떤 UIElement를 클릭했는지 알 수 없습니다. 마우스 위치 & 그리드 주어진 여기
내가 이미 가지고있는 것입니다,
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Header="Open Client CP" Background="#FF1C1C1C"/>
<MenuItem Header="Auto Mine" Background="#FF1C1C1C"/>
<MenuItem Header="Disconnect" Background="#FF1C1C1C"/>
<MenuItem Header="Uninstall" Background="#FF1C1C1C"/>
<MenuItem Header="Refresh" Background="#FF1C1C1C" Click="onRefreshMenuClick" CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Parent}"/>
</ContextMenu>
</Grid.ContextMenu>
private void onRefreshMenuClick(object sender, RoutedEventArgs e)
{
MenuItem mi = sender as MenuItem;
if (mi != null)
{
ContextMenu cm = mi.CommandParameter as ContextMenu;
if (cm != null)
{
Grid g = cm.PlacementTarget as Grid;
if (g != null)
{
// need something here like g.getrowof(cm.placementtarget)
if (debugWindow != null)
debugWindow.LogTextBox.AppendText("Requested refresh from "+ row);
}
}
}
}