我正在研究WPF应用程序,我想在按下该按钮时将Button切换到textBox。我试图隐藏按钮并在点击代码时更改文本框的边距,但边距不会改变。 那我该怎么办?
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;
}
答案 0 :(得分:3)
你应该做的是将TextBox添加到XAML,然后直接引用它来显示/隐藏按钮和文本框。
XAML:
<Button x:Name="sh" Click="sh_Click_1"/>
<TextBox x:Name="valeur" Visibility="Collapsed"/>
C#:
private void sh_Click_1(object sender, RoutedEventArgs e)
{
sh.Visibility = Visibility.Collapsed;
valeur.Visibility = Visibility.Visible;
}
答案 1 :(得分:0)
您的方法无法正常工作,因为您从未将新的texbox添加到可视树中。 您可以获取Button的属性(内容,宽度,高度等),因为这是&#34;发件人&#34;。
如果按钮位于网格中的示例:
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中拥有文本框,则不需要像我的示例中那样再安装一个TextBox。您只需将可见性置于可见状态。