我现在用WPF实现多个窗口切换,因为每个窗口的背景都是图片,所以感觉切换起来速度有点慢?有什么好的办法吗?因为程序本身有很多界面,需要切换~

解决方案 »

  1.   

    对不起,没说清楚,是用Window1 myWindows1 = new Window1();
                myWindows1.Show();
                this.Close();
    这种方式切换的
      

  2.   

    你的方法是重新打开新的窗体,是可能慢,可考虑用Tabcontrol在一个窗体中切换界面。
      

  3.   

    谢谢楼上兄弟的建议,可是用tabcontrol的话要隐藏tab header,我试了下,不能完全隐藏,800*600的窗口tabcontrol也是800×600,隐藏tab header后,tabitem里的背景图片不能充满800×600,上面总有一个白条,不知道如何解决~
      

  4.   

    <TabItem Header="初始设置" Name="tabItem1">
                    <Viewbox Height="auto" Name="viewbox1" Width="auto">
                        <Grid Height="Auto" Name="grid" Width="Auto">
                 </Grid>
                    </Viewbox>
                </TabItem>
    用上面的viewbox控件可以充满,tabitem里的一个白条,可以将最后下一个tabItem的名称,如上面的="初始设置",里面加空格,最后和窗体一样宽。如下
    <TabItem Header="             初始设置             " Name="tabItem1">
      

  5.   

    <TabItem Header=" 00000初始设置000000 " Name="tabItem1">
    你将上面的0替换为空格,因这论坛里显示不了空格。
      

  6.   

    考虑用prism吧 感觉应该挺适合多窗口解决方案的
      

  7.   

    再次谢谢兄弟的详细回复,我试了一下,可是上面还是有有白条,不能完全填充,下面是XAML代码
    <Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="0*"/>
    <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <TabControl Grid.Column="1" HorizontalAlignment="Left" Width="800" BorderThickness="0">
    <TabItem x:Name="Home" Header="TabItem" Visibility="Collapsed">
     <Viewbox Height="auto" Name="viewbox1" Width="auto">
       <Grid Height="Auto" Name="grid" Width="Auto">
       </Grid>
       </Viewbox>
    </TabItem>
    <TabItem x:Name="JobSelection" Header=" TabItem " Visibility="Collapsed">
    <Grid Background="#FFE5E5E5"/>
    </TabItem>
    </TabControl>
    </Grid>
      

  8.   

    我把两个header的名字前后都加上空格也是一样呀~
      

  9.   

    下啊是所有的设置
    <Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="testWpfTab.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="800" Height="600" WindowStartupLocation="CenterScreen" Background="{x:Null}" AllowsTransparency="True" WindowStyle="None"> <Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="0*"/>
    <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <TabControl Grid.Column="1" HorizontalAlignment="Left" Width="800" BorderThickness="0">
    <TabItem x:Name="Home" Header="TabItem" Visibility="Collapsed">
     <Viewbox Height="auto" Name="viewbox1" Width="auto">
       <Grid Height="Auto" Name="grid" Width="Auto">
       </Grid>
       </Viewbox>
    </TabItem>
    <TabItem x:Name="JobSelection" Header=" TabItem " Visibility="Collapsed">
    <Grid Background="#FFE5E5E5"/>
    </TabItem>
    </TabControl>
    </Grid>
    </Window>