C# 将按钮切换到文本框
我正在开发WPF应用程序,我想在按下按钮时将一个按钮切换到textBox。我试图隐藏按钮,并在点击代码时更改文本框的边距,但边距没有更改。 那我该怎么办C# 将按钮切换到文本框,c#,wpf,C#,Wpf,我正在开发WPF应用程序,我想在按下按钮时将一个按钮切换到textBox。我试图隐藏按钮,并在点击代码时更改文本框的边距,但边距没有更改。 那我该怎么办 private void sh_Click_1(object sender, RoutedEventArgs e) { TextBox t = new TextBox(); Button b = new Button(); b = sb; t = valeur; b.Visibility = Visibi
private void sh_Click_1(object sender, RoutedEventArgs e)
{
TextBox t = new TextBox();
Button b = new Button();
b = sb;
t = valeur;
b.Visibility = Visibility.Hidden;
t.Margin = new Thickness(2, 2, 4, 2);
t.Visibility = Visibility.Visible;
}
您应该做的是将文本框添加到XAML中,然后直接引用它来显示/隐藏按钮和文本框 XAML:
您应该做的是将文本框添加到XAML中,然后直接引用它来显示/隐藏按钮和文本框 XAML:
您应该做的是将文本框添加到XAML中,然后直接引用它来显示/隐藏按钮和文本框 XAML:
您应该做的是将文本框添加到XAML中,然后直接引用它来显示/隐藏按钮和文本框 XAML:
您的方法将不起作用,因为您从未将新的texbox添加到可视化树中。 您可以获取按钮的属性(内容、宽度、高度等),因为这是“发送者” 如果按钮位于网格中,则示例:
private void sh_Click_1(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
TextBox texbox = new TextBox();
texbox.Width = button.ActualWidth;
texbox.Height = button.ActualHeight;
texbox.Text = button.Content.ToString();
button.Visibility = Visibility.Collapsed;
((Grid)button.Parent).Children.Add(texbox);
Grid.SetRow(texbox, Grid.GetRow(button));
Grid.SetColumn(texbox, Grid.GetColumn(button));
}
}
编辑:如果您在XAML中已经有了文本框,则不需要像我的示例中那样再实例化一个文本框。您只需将可见性设置为可见。您的方法无法工作,因为您从未将新的texbox添加到可视化树中。 您可以获取按钮的属性(内容、宽度、高度等),因为这是“发送者” 如果按钮位于网格中,则示例:
private void sh_Click_1(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
TextBox texbox = new TextBox();
texbox.Width = button.ActualWidth;
texbox.Height = button.ActualHeight;
texbox.Text = button.Content.ToString();
button.Visibility = Visibility.Collapsed;
((Grid)button.Parent).Children.Add(texbox);
Grid.SetRow(texbox, Grid.GetRow(button));
Grid.SetColumn(texbox, Grid.GetColumn(button));
}
}
编辑:如果您在XAML中已经有了文本框,则不需要像我的示例中那样再实例化一个文本框。您只需将可见性设置为可见。您的方法无法工作,因为您从未将新的texbox添加到可视化树中。 您可以获取按钮的属性(内容、宽度、高度等),因为这是“发送者” 如果按钮位于网格中,则示例:
private void sh_Click_1(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
TextBox texbox = new TextBox();
texbox.Width = button.ActualWidth;
texbox.Height = button.ActualHeight;
texbox.Text = button.Content.ToString();
button.Visibility = Visibility.Collapsed;
((Grid)button.Parent).Children.Add(texbox);
Grid.SetRow(texbox, Grid.GetRow(button));
Grid.SetColumn(texbox, Grid.GetColumn(button));
}
}
编辑:如果您在XAML中已经有了文本框,则不需要像我的示例中那样再实例化一个文本框。您只需将可见性设置为可见。您的方法无法工作,因为您从未将新的texbox添加到可视化树中。 您可以获取按钮的属性(内容、宽度、高度等),因为这是“发送者” 如果按钮位于网格中,则示例:
private void sh_Click_1(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
TextBox texbox = new TextBox();
texbox.Width = button.ActualWidth;
texbox.Height = button.ActualHeight;
texbox.Text = button.Content.ToString();
button.Visibility = Visibility.Collapsed;
((Grid)button.Parent).Children.Add(texbox);
Grid.SetRow(texbox, Grid.GetRow(button));
Grid.SetColumn(texbox, Grid.GetColumn(button));
}
}
编辑:如果您在XAML中已经有了文本框,则不需要像我的示例中那样再实例化一个文本框。您只需将可见性设置为可见。这些控件是此函数的局部变量。它们不会添加到可视化树中。你想干什么?这是你的真实代码吗?这段代码不会做任何事情。Valeur和sb是xaml代码上声明的变量。当我按下按钮时,文本框变为可见,我只想将它放在按钮的位置更改b.visibility=visibility.hidden to sb.visibility=visibility.collapsed(隐藏原始按钮)已完成!无结果:这些控件是此函数的局部变量。它们不会添加到可视化树中。你想干什么?这是你的真实代码吗?这段代码不会做任何事情。Valeur和sb是xaml代码上声明的变量。当我按下按钮时,文本框变为可见,我只想将它放在按钮的位置更改b.visibility=visibility.hidden to sb.visibility=visibility.collapsed(隐藏原始按钮)已完成!无结果:这些控件是此函数的局部变量。它们不会添加到可视化树中。你想干什么?这是你的真实代码吗?这段代码不会做任何事情。Valeur和sb是xaml代码上声明的变量。当我按下按钮时,文本框变为可见,我只想将它放在按钮的位置更改b.visibility=visibility.hidden to sb.visibility=visibility.collapsed(隐藏原始按钮)已完成!无结果:这些控件是此函数的局部变量。它们不会添加到可视化树中。你想干什么?这是你的真实代码吗?这段代码不会做任何事情。Valeur和sb是xaml代码上声明的变量。当我按下按钮时,文本框变为可见,我只想将它放在按钮的位置更改b.visibility=visibility.hidden to sb.visibility=visibility.collapsed(隐藏原始按钮)已完成!没有结果:他们引用他们就像我在这里做的,它会很好的工作。你不需要在后面的代码中创建一个新的按钮和文本框,然后像我在这里做的那样引用它们,它会很好地工作。你不需要在后面的代码中创建一个新的按钮和文本框,然后像我在这里做的那样引用它们,它会很好地工作。你不需要在后面的代码中创建一个新的按钮和文本框,然后像我在这里做的那样引用它们,它会很好地工作。你不需要在代码后面创建新的按钮和文本框这太复杂了,在codebehind中创建控件是不好的做法。他确实不清楚这一点,但除非有明确的理由从codebehind创建控件,我使用了那个代码,但文本框的边距没有改变这太复杂了,在codebehind中创建控件是不好的做法。他确实不清楚这一点,但除非有明确的理由从codebehind创建控件,我使用了那个代码,但文本框的边距没有改变这太复杂了,在codebehind中创建控件是不好的做法。他确实不清楚这一点,但除非有明确的理由从codebehind创建控件,不应该这样做。我使用了该代码,但文本框的边距没有改变。这太复杂了,在codebehind中创建控件是不好的做法。他确实不清楚这一点,但除非有明确的理由从codebehind创建控件,否则应该不鼓励这样做。我使用了该代码,但