2011-11-24 91 views
0

我想使用下面的布局结构来构建WPF窗口应用程序。考虑ASP.Net中的“母版页”等左边框/窗口上的标题和按钮。在右侧框架上,它应该是一个WPF导航窗口。布局导航窗口

当我将导航窗口作为UI元素包含在最后一个堆栈面板时,它会引发我和错误。我应该如何根据下面的图片截图设计整个布局?由于

<Window x:Class="MainWindow" 
    xmlns:local="clr-namespace:ClientSocket"   
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title=" Desktop" Height="841" Width="1271" WindowStartupLocation="CenterScreen" WindowState="Maximized"> 
    <DockPanel> 
     <StackPanel DockPanel.Dock ="Top" Orientation="Horizontal" Background="Red"> 
      <TextBlock Background="red" FontSize ="36" Width="482" > 
      Main Title 
      </TextBlock>   
     </StackPanel> 
     <StackPanel Background="LightGray" DockPanel.Dock ="Left" Width="145"> 
      <Button Content="Button1" Name="btnAndroid" Width="119" Margin="3" BorderBrush="{StaticResource {x:Static SystemColors.InfoBrushKey}}" /> 
      <Button Content="Button2" Name="btnDownloads" Width="119" Margin="3" BorderBrush="{StaticResource {x:Static SystemColors.InfoBrushKey}}" /> 
      <Button Content="AddNewDownloads" Height="37" Name="Button1" Width="133" /> 
     </StackPanel> 
     <StackPanel> 
     <NavigationWindow Height="auto" Width="auto" Name="nwMain" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="Blue" BorderThickness="1" /> 
     </StackPanel> 
    </DockPanel> 
</Window> 

enter image description here

回答

2

您不能添加的窗口。任何事物的孩子,还有你可以用它来代替在这里,它被称为Frame一个嵌套的导航控制。

布局明智我会建议Grid有两个rows,包含另外的表格(在Grid.Row="1")有两个columns

DockPanels是可能不应该使用的悲伤控件,除非有人指着你的枪并告诉你。

+0

嗨H.B.我可以尝试移除dockpanel并使用grid来布局这个结构,但是这并不回答如何将导航窗口放入另一个窗口(参考上面的xaml代码)的问题。实际上,我不希望将导航窗口放在另一个窗口中作为运行时错误,而是寻求能够按照上述屏幕快照实现布局的解决方案 –

+0

@simeh:Windows不能成为任何东西的子项,如果您有任何东西需要托管在另一个窗口中,您应该将其转换为“UserControl”。事实上,你应该把所有事情都做成'UserControl',这样你就不会遇到这样的问题。 –

+0

@simeh:在这种情况下,你不能改变它,所以你应该使用一个'Frame'控件来代替我的想法。 –