如何在第一个窗口上单击按钮刷新secodn窗口。
我是WPF的新手,已经搜索了很长时间,但是我发现的答案不起作用。我正在尝试在第二个窗口上发布的主文本框中编写文本。到目前为止,我已经拥有了,但是我只能在使用win1.show()时使用它。这将显示一个新的弹出屏幕,其中包含键入的文本,但不在同一页面上。所以我怎么能得到这个而不是弹出来刷新。
主窗口:
Title="MainWindow" Height="1050" Width="1680" ResizeMode="CanResizeWithGrip" Topmost="False" WindowState="Normal" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Gray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1593*"/>
<ColumnDefinition Width="80*"/>
</Grid.ColumnDefinitions>
<Button Content="Verstuur" HorizontalAlignment="Left" Margin="1330,10,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verstuur_Button_Click"/>
<Button Content="Verwijder" HorizontalAlignment="Left" Margin="1330,100,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verwijder_Button_Click_1"/>
<TextBox Name="Textbox" HorizontalAlignment="Left" Height="1000" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="1315"/>
</Grid>
第二个窗口:
Title="MainWindow" Height="1050" Width="1680" ResizeMode="NoResize" Topmost="True" WindowState="Maximized" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Black">
<Label Name="lbl_Tekst" Content="" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="White" Height="1020" Width="1673"/>
</Grid>
代码主窗口:
public partial class MainWindow : Window
{
string hint = "";
string verwijder = "";
Window1 win1 = new Window1();
public MainWindow()
{
InitializeComponent();
win1.Show();
}
private void Verstuur_Button_Click(object sender, RoutedEventArgs e)
{
hint = Textbox.Text;
Window1 win1 = new Window1(hint);
win1.Show();
}
private void Verwijder_Button_Click_1(object sender, RoutedEventArgs e)
{
Textbox.Text = verwijder;
Window1 win1 = new Window1(verwijder);
win1.Show();
}
}
代码第二个窗口:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
public Window1(string hint) : this()
{
lbl_Tekst.Content = hint;
}
}
希望您可以帮助使其刷新,而不是新的弹出屏幕。
答案 0 :(得分:0)
在Window1
类上创建一个方法来更新标签。
喜欢:
public void UpdateLabel(string text)
{
lbl_Tekst.Content = text;
}
然后您可以像这样从MainWindow
调用它:
win1.UpdateLabel("I am updated content");
然后,您应该更新该标签的内容。但是,我建议您阅读MvvM和DataContexts
,这将使您无需实际引用这些元素即可更轻松地操作UI元素的内容。