2013-04-25 102 views
3

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

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

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

+0

在VS中创建表单,就像使用主表单一样。然后使用你的代码来打开并显示该表单。 – TheGeekZn 2013-04-25 11:21:07

+2

你确定你问的是WPF窗口而不是WinForms窗口吗? – 2013-04-25 11:22:17

+0

@AndreiZubov:我猜测,但点击处理程序有'RoutedEventArgs'参数指示它是一个WPF事件处理程序。然而,'form2'可能是'System.Windows.Forms.Form',表明Windows Forms可能被错误地混入了应用程序中。 – 2013-04-25 11:52:14

回答

8

好...你可以创建一个新的窗口,并加载到这个Windows.Content一个用户控件至极你在一个新的XAML createt。 例子:

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> 
7

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

  1. 项目 - >添加新项 - >窗口(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();