0
                    <Menu Height="50" Margin="0,0,0,0" HorizontalAlignment="Stretch" FlowDirection="RightToLeft">
                        <Menu.Background>
                            <LinearGradientBrush EndPoint="0,0" StartPoint="0,1">
                                <GradientStop Color="#FFB3DDF2" Offset="1.0"/>
                                <GradientStop Color="#FFD6E9F4" Offset="0.0"/>
                            </LinearGradientBrush>
                        </Menu.Background>
                    </Menu>

このメニューは、ページの長さに関係なく引き伸ばされ、幅を持つ必要はありません。

                    <Menu Width="350" Margin="0,0,0,0" VerticalAlignment="Stretch" HorizontalAlignment="Left" FlowDirection="RightToLeft" DockPanel.Dock="Bottom">
                        <Menu.Background>
                            <LinearGradientBrush EndPoint="0,0" StartPoint="0,1">
                                <GradientStop Color="#FFD6E9F4" Offset="1.0"/>
                                <GradientStop Color="White" Offset="0.0"/>
                            </LinearGradientBrush>
                        </Menu.Background>
                    </Menu>

このメニューでも同じことをしたいのですが、高さが必要です。つまり、ページを下に伸ばすと、メニューのサイズがページに合わせて伸びません。コードに高さを入力しないと、メニュー バーが表示されません。私の質問は、メニュー バーの幅は必要ないのに、高さが必要なのはどうしてですか。

前もって感謝します

4

1 に答える 1

2

これは設計によるものです。

メニューバーは、それが含まれているコントロール全体に広がると想定されるものです。そのため、幅は必要ありません。

中にはどんなコンテンツでも入れることができるので、高さが必要です。

ストレッチの高さは、WPF が描画する場合、背景色の大きな空白領域になるため、メニュー コントロールにはあま​​り意味がありません。

于 2013-11-11T16:39:57.793 に答える