Окно навигации по макету - PullRequest
1 голос
/ 24 ноября 2011

Я хотел бы создать оконное приложение WPF, используя следующую структуру макета. Считайте заголовок и кнопку в левой рамке / окне похожими на «Главные страницы» в ASP.Net. В правой части окна должно быть окно навигации WPF.

Когда я включаю окно навигации в качестве элемента пользовательского интерфейса на последней панели стека, оно выдает мне сообщение об ошибке. Как мне спроектировать весь макет согласно скриншоту ниже? Спасибо

<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

1 Ответ

2 голосов
/ 24 ноября 2011

Вы не можете добавить окно в качестве дочернего элемента для чего-либо, есть вложенный элемент управления навигацией, который вы можете использовать здесь вместо этого, он называется Frame.

В плане размещения я бы порекомендовал Grid с двумя строками , содержит еще одну сетку (в Grid.Row="1") с двумя столбцы .

DockPanels - печальные средства управления, которые, вероятно, не должны использоваться, если кто-то не направит на вас оружие и не скажет вам.

...