如何识别 WPF 网格上哪个单元格被单击?

2023-12-14

我有一个 3x3 矩阵网格。如果用户位于特定单元格上,单击后如何识别单元格坐标?

请指教。谢谢 八打灵再也


假设您正在设计一个井字棋风格的游戏,并且所讨论的网格是标准的 WPF 网格,我想您最好在每个单独的单元格中放置一个控件。这样你就可以挂钩每个鼠标事件,如下所示:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>

        <Button Grid.Column="0" Grid.Row="0" Click="ButtonClick" />
        <Button Grid.Column="1" Grid.Row="0" Click="ButtonClick" />
        <Button Grid.Column="2" Grid.Row="0" Click="ButtonClick" />

        <Button Grid.Column="0" Grid.Row="1" Click="ButtonClick" />
        <Button Grid.Column="1" Grid.Row="1" Click="ButtonClick" />
        <Button Grid.Column="2" Grid.Row="1" Click="ButtonClick" />

        <Button Grid.Column="0" Grid.Row="2" Click="ButtonClick" />
        <Button Grid.Column="1" Grid.Row="2" Click="ButtonClick" />
        <Button Grid.Column="2" Grid.Row="2" Click="ButtonClick" />

    </Grid>
</Window>

在你的代码隐藏中:

private void ButtonClick(object sender, RoutedEventArgs e)
{
    Button _btn = sender as Button;

    int _row = (int)_btn.GetValue(Grid.RowProperty);
    int _column = (int)_btn.GetValue(Grid.ColumnProperty);
    MessageBox.Show(string.Format("Button clicked at column {0}, row {1}", _column, _row));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何识别 WPF 网格上哪个单元格被单击? 的相关文章

  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 获取从属性构造函数内部应用到哪个属性的成员?

    我有一个自定义属性 在自定义属性的构造函数内 我想将属性的属性值设置为属性所应用到的属性的类型 是否有某种方式可以访问该属性所应用到的成员从我的属性类内部 可以从 NET 4 5 using CallerMemberName Somethi
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • OxyPlot WPF 不适用于按钮单击

    我在使用 OxyPlot 时遇到了一些问题 但无法通过他们的文档或其他搜索来解决 我正在开发一个 wpf 应用程序 它允许用户通过按钮单击事件打开 csv 然后执行一些数学运算并报告一些有用的信息 我想绘制一些生成的数据 因此使用 OxyP
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat

随机推荐

  • iPhone sdk调用拦截

    我们正在开发一个应用程序 该应用程序的功能是 当我们自动接到电话时 我们必须通过短信 语音消息回复 那么 您能告诉我们在iPhone中是否可以实现 如果意味着指导我们构建该应用程序 提前致谢 布莱特 拉吉 目前的SDK无法以这种方式访问 手
  • 如何获取 pygtk 窗口的大小?

    我正在尝试使用 gtk window get size 但它总是只返回默认的宽度和高度 文档说 get size 方法返回一个包含当前宽度和 窗户的高度 如果窗口不在屏幕上 则返回 PyGTK 将向窗口管理器建议初始窗口的大小 尺寸 get
  • 将科学记数法转换为十进制 pandas python

    可能这是一个老问题 我在下面发现了类似的问题 但我仍然可以在输出文件中看到科学记数法 抑制 pandas 中的科学记数法 熊猫读科学计数法并改变 Python Pandas 科学记数法不一致 我尝试合并set option and df a
  • 扩展 EntityType 以允许通过 AJAX 调用设置额外的选择

    我尝试创建 Symfony 自定义类型延伸核心 entity type 但我想用它选择2版本4 0 0 ajax 现在适用于 select html 元素 而不是像以前那样适用于隐藏的 input 此类型应创建一个空选择 而不是扩展 实体
  • 从 const 成员函数中将“this”返回为非常量

    我想在类上进行方法链接Point below include
  • Curl 无法验证 Verisign 颁发的通配符 SSL 证书

    我有一个脚本需要使用 cURL 安全连接到网站 foo bar com 该网站由 bar com 的通配符 SSL 证书覆盖 通配符证书由 Verisign 颁发 所有浏览器都信任它 没有任何问题 但是 我无法让 PHP cURL 连接 至
  • VS Code 仅显示 1 行可能的导入路径。如何将其转换回默认列表框?

    我想我在 vs code 中做了一些设置更改 这使得我的导入语句看起来像这样 默认 VS Code 导入预览显示 3 个或更多路径 我应该更改什么选项才能将其恢复为默认列表框视图 我的设置 json 上次 vscode 更新到 v1 51
  • UITableView 在设备旋转后纠正滚动位置

    我正在构建类似书籍阅读器的东西 当用户旋转手机时我想增加字体大小 我正在使用一个UITableView显示文本块 问题是 增加字体大小会增加表格视图中行的高度 如果我在纵向模式下阅读第 320 段 我会在横向模式下得到 280 或类似的内容
  • 使用 JQuery 动态加载列表项

    我想构造我的 JQuery 以一次淡入每个单独的项目 这是行为的一个例子 这是我迄今为止拥有的 JQuery li css display none delay 1000 fadeIn 800 这可能不是最好的解决方案 但它应该有效 li
  • Windows 窗体的大小是否包括其边框?

    当您设置窗口窗体的大小时 即 Form1 Size new System Drawing Size 700 500 这是否包括窗口在窗体周围放置的边框 因为我已经将 700x500 的图像 通过 pictureBoxes 添加到我的表单中
  • 如何通过 $http 将 angular-ui 的 typeahead 与服务器绑定以进行服务器端优化?

    预输入示例 http angular ui github io bootstrap typeahead 提到在这个自动完成中实现后端很容易 但没有提供示例 我特别感兴趣的是找出当前输入的字符串 以便我可以发送that到服务器并发回已经过滤的
  • NSDateFormatter 和日本日历

    当用户不使用公历作为 iPhone 的默认日历时 我在使用 NSDateFormatter 时遇到问题 NSString testString 2011 01 14 NSDateFormatter dateFormat NSDateForm
  • 在c#中将值参数传递给任务

    我在将 long 按值传递给任务时遇到问题 我有一个 ID 列表 我循环遍历每个 ID 分配给局部变量 然后作为参数传递给新任务 在循环并处理下一个 ID 之前 我不会等待任务完成 我保留了一系列任务 但这无关紧要 loop long ID
  • Scala 宏:定义顶级对象

    我看了type macros对于斯卡拉 但是当我想从示例创建对象时 我收到错误 Example scala 7 gt or lt expected type Test url String macro impl Example scala
  • 如何更改 git 子模块的远程存储库?

    我创建了一个 git 存储库 其中包含一个子模块 我可以告诉子模块本身更改其远程存储库路径 但我不确定如何告诉父存储库如何更改子模块的远程存储库路径 如果我有点运气不好并且必须手动执行操作 我不会感到惊讶 因为即使删除子模块也不容易 您应该
  • stringi 安装错误:配置:错误:C 编译器无法创建可执行文件

    我正在尝试安装stringi最近将 R 更新到最新版本后的软件包 但是 我遇到了这个错误 installing source package stringi package stringi successfully unpacked and
  • 将 HTML5 Canvas 转换为要上传的文件?

    标准 HTML 文件上传的工作原理如下
  • SQL Server 2005/2008 - 为什么没有架构名称的用户可以使用 sys.sysobjects 视图?

    我注意到 SQL Server Express 2008 中有一些奇怪的行为 并且我一直在尝试找出原因 创建新数据库时 无需指定架构标识符即可访问 sys sysobjects 视图 如下所示 SELECT FROM sysobjects
  • C while 循环 - 代码不起作用

    我一直在编写一个简单的程序来检查输入字母是否是元音 但我的代码不起作用 程序应该一一输入字符 直到输入 这将使程序退出 它检查输入字符是否为元音 并打印结果 如果输入不是字母 它还会报告错误 问题是 它在第 二步中打破了循环 提前感谢您的帮
  • 如何识别 WPF 网格上哪个单元格被单击?

    我有一个 3x3 矩阵网格 如果用户位于特定单元格上 单击后如何识别单元格坐标 请指教 谢谢 八打灵再也 假设您正在设计一个井字棋风格的游戏 并且所讨论的网格是标准的 WPF 网格 我想您最好在每个单独的单元格中放置一个控件 这样你就可以挂