Buat Menu Bar di WPF?


120

Saya ingin membuat bilah menu yang identik dengan yang ada di formulir windows di aplikasi WPF saya.

Bagaimana saya melakukan ini?

Opsi menu di kotak alat kontrol WPF hanya memberikan bilah kosong.

Jawaban:


228
<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="_File">
            <MenuItem Header="_Open"/>
            <MenuItem Header="_Close"/>
            <MenuItem Header="_Save"/>
        </MenuItem>
    </Menu>
    <StackPanel></StackPanel>
</DockPanel>

11
Mengapa ada garis bawah? Mengapa mereka disembunyikan?
C4d

27
@ C4u: Mereka mengatur tombol pintas (mis. Alt + f untuk "file")
BlueRaja - Danny Pflughoeft

Saya telah menyiapkan tutorial komprehensif tentang Menu WPF, Pengikatan Perintah menambahkan tombol Pintasan dll di youtu.be/bdmVWGjpA_8
Zaheer

45

Ya, menu memberi Anda bilah tetapi tidak memberi Anda item apa pun untuk dimasukkan ke bilah. Anda membutuhkan sesuatu seperti (dari salah satu proyek saya sendiri):

<!-- Menu. -->
<Menu Width="Auto" Height="20" Background="#FFA9D1F4" DockPanel.Dock="Top">
    <MenuItem Header="_Emulator">
    <MenuItem Header="Load..." Click="MenuItem_Click" />
    <MenuItem Header="Load again" Click="menuEmulLoadLast" />
    <Separator />
    <MenuItem Click="MenuItem_Click">
        <MenuItem.Header>
            <DockPanel>
                <TextBlock>Step</TextBlock>
                <TextBlock Width="10"></TextBlock>
                <TextBlock HorizontalAlignment="Right">F2</TextBlock>
            </DockPanel>
        </MenuItem.Header>
    </MenuItem>
    :

39
Halo, alih-alih DockPanel bersarang itu, Anda dapat menggunakan atribut InputGestureText sebagai gantinya. Misalnya<MenuItem Header="Step" Click="MenuItem_Click" InputGestureText="F2" />
AlanFoster

3
@AlanFoster Anda harus memposting jawaban Anda sendiri termasuk petunjuk itu. Saya hampir melewatkannya dan itu memalukan! Anda dapat menggunakan kembali penyiapan dari jawaban yang diterima. Itu yang paling sederhana, menurut saya. Dan diformat terbaik.
Konrad Viltersten

9
<StackPanel VerticalAlignment="Top">
    <Menu Width="Auto" Height="20">
        <MenuItem Header="_File">
            <MenuItem x:Name="AppExit" Header="E_xit" HorizontalAlignment="Left" Width="140" Click="AppExit_Click"/>
        </MenuItem>
        <MenuItem Header="_Tools">
            <MenuItem x:Name="Options" Header="_Options" HorizontalAlignment="Left" Width="140"/>
        </MenuItem>
        <MenuItem Header="_Help">
            <MenuItem x:Name="About" Header="&amp;About" HorizontalAlignment="Left" Width="140"/>
        </MenuItem>
    </Menu>
    <Label Content="Label"/>
</StackPanel>

2
<Container>
    <Menu>
        <MenuItem Header="File">
            <MenuItem Header="New">
               <MenuItem Header="File1"/>
               <MenuItem Header="File2"/>
               <MenuItem Header="File3"/>
            </MenuItem>
            <MenuItem Header="Open"/>
            <MenuItem Header="Save"/>
        </MenuItem>
    </Menu>
</Container>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.