C#WPF - MainWindow内容显示在两个单独的窗口而不是一个窗口中

时间:2016-11-20 09:15:51

标签: c# wpf xaml

我希望有一个MainWindow有两列,左边是窄列,右边是宽。在左边一个应该是菜单栏,在右边一个是Fields的网格(这是一个自定义ViewModelBase)。但是,现在当我启动程序时,它给了我两个窗口,一个带有网格,一个带有菜单栏左边。我究竟做错了什么?哪里可能是错误?

Tha XAML看起来像这样:

<Window x:Class="SavageMaci.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Test" Height="500" Width="700">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>

        <Menu Grid.Row="1" Grid.Column="1" Margin="38,0,187,430" Background="White">
            <Menu.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="90"/>
                    <TranslateTransform/>
                </TransformGroup>
            </Menu.RenderTransform >
            <MenuItem Header="Level 1" FontFamily="Roboto" Height="32" Width="65"/>
            <MenuItem Header="Level 2" FontFamily="Roboto" Height="32" Width="65"/>
            <MenuItem Header="Level 3" FontFamily="Roboto" Height="32" Width="65"/>
        </Menu>
        <ItemsControl Grid.Row="1" Grid.Column="2" ItemsSource="{Binding Fields}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Rows="{Binding Size}" Columns="{Binding Size}"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
    </Grid>
</Window>

xaml.cs也是基本的:

namespace SavageMaci
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

MainWindow()中只有App.xaml.cs的一个引用,我在hadoopRdd -> Filter -> map 中实例化它。请告诉我错误的其他地方,我也会用该代码更新问题。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

解决问题的方法很简单。在App类中,创建一个MainWindow实例。

这是不必要的,因为无论您是否创建,App都会创建自己的实例。

查看App.xaml文件,您将亲眼看到。