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.

penipuan1
sumber

Jawaban:

228
<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="_File">
            <MenuItem Header="_Open"/>
            <MenuItem Header="_Close"/>
            <MenuItem Header="_Save"/>
        </MenuItem>
    </Menu>
    <StackPanel></StackPanel>
</DockPanel>
ionden
sumber
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>
    :
paxdiablo
sumber
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>
PhonPanom
sumber
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>
Feelbad Soussi Wolfgun DZ
sumber