我使用以下代码在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.Margin时,按钮工作正常,但是一旦我定义它,我就无法点击它并且光标不会改变。我在互联网上搜索了一个答案,但似乎都没有。提前谢谢。
答案 0 :(得分:0)
不确定'位置'在你的代码中,我假设'网格'是网格的名称。以下是有效的。
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>
答案 1 :(得分:0)
如果你无法点击你创建的控件,那么它通常是由其他控件引起的。
我建议稍微修改你的代码并从那一点继续:
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
。
答案 2 :(得分:0)
看起来您想以编程方式执行此操作,但如果您在XAML中定义它,则可以将按钮的Panel.ZIndex属性设置为某个较大的数字以将其置于前面:
<Button Content="TEST!" Panel.ZIndex="1000" Height="20" Width="20" Cursor="Hand" Click="Edit_Click" />
希望有人帮助......