【问题标题】:WPF Button is static and does nothingWPF 按钮是静态的,什么都不做
【发布时间】:2015-08-17 20:32:47
【问题描述】:

我正在用 C# 设计一个 WPF 应用程序,并在运行时创建一个带有其控件的网格。我的所有控件都可以正常工作(图像、文本块、标签),但我的按钮不能。它只是坐在那里。当我将鼠标移到它上面时,它什么也不做。当我单击它时,(带有单击事件处理程序)它绝对什么都不做!我尝试过使用不同的事件处理程序,例如(Click、MouseDown、MouseUp)。我不知道问题是什么。这是我的按钮代码:

Button AccessBtn = new System.Windows.Controls.Button();
AccessBtn.Content = "Access:";
AccessBtn.Margin = new Thickness(397, 571, 472, 41);
AccessBtn.Name = "AccessButton";
AccessBtn.Focusable = true;                      
AccessBtn.Click += (s, EventArgs) =>{
       MessageBox.Show("Nothing here yet!");
};
grid.Children.Add(AccessBtn);

【问题讨论】:

  • 顺便说一句,避免使用Margin 来定位元素,而应使用Grid 或StackPanel 等布局控件。
  • @Dai Margin 怎么了?
  • 如果您调整窗口大小,按钮将不会重排,也不会以不同的窗口文本大小重排(因为文本大小可以独立于 DPI 进行控制)。
  • 我猜是有什么东西覆盖了你的按钮并吸收了鼠标事件
  • 删除所有内容并使用正确的 XAML。

标签: c# wpf button


【解决方案1】:

当您将子项添加到网格时。它们被添加到第 0 行和第 0 列。 所以它们都将相互堆叠。鼠标事件的按钮不再可见。您应该将按钮放在项目的顶部或使用行和列来排列项目。 (或者,您可能想要检查 Canvas 来定位您的元素。)

【讨论】:

  • 谢谢!在我看到这个之前就想到并修复它!
猜你喜欢
  • 2016-07-24
  • 2013-12-27
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多