c# WPF不能在定义空白后点击按钮
本文关键字:按钮 空白 定义 WPF 不能 | 更新日期: 2023-09-27 18:12:03
我在WPF应用程序中使用以下代码创建了一个按钮:
Button EditButton = new Button();
EditButton.Margin = new System.Windows.Thickness(Location[0], Location[1], 0, 0);
EditButton.Height = double.Parse("20");
EditButton.Width = double.Parse("20");
EditButton.Cursor = System.Windows.Input.Cursors.Hand;
EditButton.Content = "TEST!";
EditButton.Click += new System.Windows.RoutedEventHandler(Edit_Click);
Grid.Children.Add(EditButton);
Location[1] += 17;
当我没有定义EditButton时,按钮可以完美地工作。但一旦我定义了它,我就不能点击它,光标也不会改变。我在网上搜索了一个答案,似乎没有一个是有效的。
如果您无法单击已创建的控件,则通常是由于该控件的顶部有其他控件导致的。
我建议你稍微修改一下你的代码,从那一点开始:
var stackPanel = new StackPanel();
var button = new Button();
button.Content = "Your Button";
button.Click += new System.Windows.RoutedEventHandler(Edit_Click);
stackpanel.Children.Add(button);
我建议使用StackPanel
,因为它会自动安排您的控件,从而防止它重叠,您可以从这一点开始,看看问题是否由网格或其他组件引起。
Button
将默认拉伸到它的内容,StackPanel
也是。
不确定什么'位置'是在你的代码,我假设'Grid'是网格的名称。
public MainWindow()
{
InitializeComponent();
Button EditButton = new Button();
EditButton.Margin = new System.Windows.Thickness(10, 10, 0, 0);
EditButton.Height = double.Parse("20");
EditButton.Width = double.Parse("20");
EditButton.Cursor = System.Windows.Input.Cursors.Hand;
EditButton.Content = "TEST!";
EditButton.Click += new System.Windows.RoutedEventHandler(Edit_Click);
Grid.Children.Add(EditButton);
// Location[1] += 17;
}
private void Edit_Click(object sender, RoutedEventArgs e)
{
throw new NotImplementedException();
}
XAML -
<Window x:Class="WpfApplication6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="Grid">
</Grid>
</Window>
看起来您希望以编程方式完成此操作,但如果您在XAML中定义它,则可以设置按钮的Panel。ZIndex属性设置为一些大的数字,把它放在前面:
<Button Content="TEST!" Panel.ZIndex="1000" Height="20" Width="20" Cursor="Hand" Click="Edit_Click" />