【问题标题】:Win8 XAML Grid which column and row was tappedWin8 XAML Grid 点击了哪一列和哪一行
【发布时间】:2015-07-16 11:38:49
【问题描述】:

在 Windows 商店应用程序中,我有一个包含很多列和行的网格

        <Grid x:Name="gridContainer" 
              Background="Transparent"
              Tapped="gridContainer_Tapped">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                ...
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                ...
            </Grid.ColumnDefinitions>
       </Grid>

并监听 Grid Tapped 事件。

private void gridContainer_Tapped(object sender, TappedRoutedEventArgs e)
{

}

是否可以在不添加额外的透明元素并跟踪它们的点击事件的情况下确定点击了哪一列和哪一行?

【问题讨论】:

  • 您正在为整个网格提供点击事件,那么您如何获得点击了哪一行?您是否为该行和列绑定了任何数据??
  • "您正在为整个网格提供点击事件,那么您如何获得点击了哪一行?"我问了完全相同的问题...
  • 我认为只有在网格上获得点击输入的坐标并使用 Grid 的坐标和它的行列进行测量时,这才有可能......!除此之外,我没有看到任何可能性..
  • 我通过添加不可见的控件并监听他们的 Tapped 事件解决了我的问题,但我仍然认为如果 Grid.Tapped EventArgs 有被点击的 Column 和 Row 会很有帮助:)

标签: c# xaml windows-8


【解决方案1】:

如果你在这些单元格中有任何东西,你可以这样做:

private void gridContainer_Tapped(object sender, TappedRoutedEventArgs e)
{
   if(e.OriginalSource is FrameworkElement)
   {
      var col = Grid.GetColumn(e.OriginalSource as FrameworkElement);
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多