WPF多窗口切换问题

simon0041 2011-03-07 10:42:01
我现在用WPF实现多个窗口切换,因为每个窗口的背景都是图片,所以感觉切换起来速度有点慢?有什么好的办法吗?因为程序本身有很多界面,需要切换~
...全文
1161 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
simon0041 2011-03-08
  • 打赏
  • 举报
回复
谢谢楼上兄弟的建议,可是用tabcontrol的话要隐藏tab header,我试了下,不能完全隐藏,800*600的窗口tabcontrol也是800×600,隐藏tab header后,tabitem里的背景图片不能充满800×600,上面总有一个白条,不知道如何解决~
dfghdfherty 2011-03-08
  • 打赏
  • 举报
回复
你的方法是重新打开新的窗体,是可能慢,可考虑用Tabcontrol在一个窗体中切换界面。
simon0041 2011-03-08
  • 打赏
  • 举报
回复
对不起,没说清楚,是用Window1 myWindows1 = new Window1();
myWindows1.Show();
this.Close();
这种方式切换的
simon0041 2011-03-08
  • 打赏
  • 举报
回复
下啊是所有的设置
<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>
simon0041 2011-03-08
  • 打赏
  • 举报
回复
我把两个header的名字前后都加上空格也是一样呀~
simon0041 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dfghdfherty 的回复:]
<TabItem Header="初始设置" Name="tabItem1">
<Viewbox Height="auto" Name="viewbox1" Width="auto">
<Grid Height="Auto" Name="grid" Width="Auto">
</Grid>
</Viewbox>
</TabItem>
用上面的viewbox控件可以……
[/Quote]
再次谢谢兄弟的详细回复,我试了一下,可是上面还是有有白条,不能完全填充,下面是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>
xiao_p 2011-03-08
  • 打赏
  • 举报
回复
考虑用prism吧 感觉应该挺适合多窗口解决方案的
dfghdfherty 2011-03-08
  • 打赏
  • 举报
回复
<TabItem Header=" 00000初始设置000000 " Name="tabItem1">
你将上面的0替换为空格,因这论坛里显示不了空格。
dfghdfherty 2011-03-08
  • 打赏
  • 举报
回复
<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">
zilong4460072 2011-03-07
  • 打赏
  • 举报
回复
没搞懂你是什么意思 你是怎么切换的 可以考虑用线程

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧