WPF设置菜单高度以适应?

时间:2013-07-05 15:01:49

标签: c# wpf visual-studio-2010

在WPF中,如何设置菜单的高度以适应,而不是像下面灰色阴影下降的那样 enter image description here

<Window x:Class="XAML_Concepts.GridLayout"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="GridLayout" Height="600" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="7*"/>
            <ColumnDefinition Width="3*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="1*"/>
        </Grid.RowDefinitions>
        <Menu IsMainMenu="True" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="1" >
            <MenuItem Header="File">
                <MenuItem Header="_New"></MenuItem>
                <MenuItem Header="_Open"></MenuItem>
            </MenuItem>

            <MenuItem Header="Edit"></MenuItem>

        </Menu>

    </Grid>
</Window>

我只是需要它来查看普通菜单,就像在Windows资源管理器中一样,没有任何灰色阴影。我试过操纵行大小,菜单大小和其他一些属性,但我遗漏了一些简单的东西。

当我将网格的行高设置为20px时,这就是我得到的,我不满意,因为AI不想输入绝对高度而B-阴影看起来不正确,就像背景渐变涂抹.. enter image description here 感谢

2 个答案:

答案 0 :(得分:3)

尝试使用:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="1*"/>
</Grid.RowDefinitions>

这将导致第一行缩小到显示内容所需的空间。

答案 1 :(得分:3)

您必须将菜单所在行的高度设置为Auto。像这样:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="1*" />
</Grid.RowDefinitions>

当行或列的宽度或高度设置为Auto时,它只占用所需的空间。