带内容的WPF新窗口

本文关键字:窗口 新窗口 WPF | 更新日期: 2023-09-27 18:10:55

我想在现有的主窗口旁边创建一个带有可滚动文本框的新窗口。

我在主窗口中按下"打开新窗口"按钮,然后它应该打开一个带有可滚动文本框的新窗口。

inside form2

在WPF中,你可以在主窗口中拖放元素,但不能在新窗口中这样做。所以我认为只有当你在MainWindow.xaml.cs

中创建一个新窗口时才有可能

我可以创建一个新的窗口:

private void btnConnect_Click(object sender, RoutedEventArgs 
 {
    Form form2 = new Form();
    //Do intergreate TextBox with scrollbar in form2
    form2.Show();
 }

现在我想要一个文本框

但是我如何在c#或WPF中做到这一点?

Thx

带内容的WPF新窗口

嗯…你可以创建一个新的窗口,并加载到这个窗口。内容:在新的XAML中创建的UserControl。例子:

NewXamlUserControl ui = new NewXamlUserControl();
MainWindow newWindow = new MainWindow();
newWindow.Content = ui;
newWindow.Show();

Xaml可以像这样

<UserControl x:Class="Projekt"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       x:Name="newXamlUserControl"      
        Height="300" Width="300">
    <Grid>
        <TextBox Text = ..../>
    </Grid>
</UserControl>

在项目中创建一个新的WPF窗口:

  1. Project -> Add New Item -> Window (WPF)
  2. 适当地命名窗口(这里我使用ConnectWindow.xaml)
  3. 添加TextBox到XAML

    <Window
        x:Class="WpfApplication1.ConnectWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Connect"
        Height="300"
        Width="300"
        ShowInTaskbar="False">
        <TextBox
            AcceptsReturn="True"
            VerticalScrollBarVisibility="Auto"
            HorizontalScrollBarVisibility="Auto"/>
    </Window>
    

    您可以自定义WindowTextBox

有几种显示窗口的方法。

显示一个模态窗口(this指的是主窗口):

var window = new ConnectWindow { Owner = this };
window.ShowDialog();
// Execution only continues here after the window is closed.

显示非模态子窗口:

var window = new ConnectWindow { Owner = this };
window.Show();

显示另一个顶层窗口:

var window = new ConnectWindow();
window.Show();