Как сделать контрольную док-станцию ​​в wpf - PullRequest
1 голос
/ 18 сентября 2011

Я пытаюсь сделать так, чтобы моя строка меню заполняла экран горизонтально, как должна выглядеть строка меню.Когда я запускаю программу, окно уже настроено на максимальное увеличение, но строка меню заполняет только половину экрана сверху.Я не уверен, как это исправить.Так что, чтобы было ясно, я пытаюсь привести свои элементы управления в соответствие с внешним видом в зависимости от размера окна.

Вот код:

  <Window x:Class="WpfApplication3.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Royale" WindowStyle="ThreeDBorderWindow" SizeToContent="Manual" WindowState="Maximized" xmlns:my1="clr-namespace:System;assembly=mscorlib">
<Window.Resources>
    <my1:Double x:Key="Width1">500</my1:Double>
</Window.Resources>
<Grid ShowGridLines="False" Width="Auto">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Menu Height="23" HorizontalAlignment="Left" Name="menu1" VerticalAlignment="Top"       Width="503" IsMainMenu="True" Grid.ColumnSpan="2">
        <MenuItem Header="File" HorizontalContentAlignment="Stretch">
            <MenuItem Header="New">
                <MenuItem Header="New Camper" />
            </MenuItem>
        </MenuItem>
        <MenuItem Header="Edit" />
        <MenuItem Header="View" />
        <MenuItem Header="Add" />
    </Menu>
   </Grid>
   </Window>

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Использование DockPanel:

http://www.wpftutorial.net/DockPanel.html

<DockPanel LastChildFill="True">
    <Button Content="Dock=Top" DockPanel.Dock="Top"/>
    <Button Content="Dock=Bottom" DockPanel.Dock="Bottom"/>
    <Button Content="Dock=Left"/>
    <Button Content="Dock=Right" DockPanel.Dock="Right"/>
    <Button Content="LastChildFill=True"/>
</DockPanel>
0 голосов
/ 19 сентября 2011

Простой ответ - установите в вашем меню значение Grid.ColumnSpan="3", поскольку у вас есть 3 столбца.

Однако я бы порекомендовал вложить вашу "основную" сетку в DockPanel или вторую сетку (с 2 рядами). Таким образом, когда вы добавляете контент (т.е. добавляете новые столбцы в свою сетку), вам не придется постоянно корректировать свое меню для компенсации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...