How to make s WPF menu look like a Windows Forms ToolStripMenu?
Asked Answered
B

2

9

I am new to WPF. And by new I mean I just started it today after getting .net 3.5. I usually do GUI Development in Windows Forms and like the awesome ToolStripMenu. But when I saw the WPF Menu, it was so ugly that it reminded me of my Win32 Api days. Is there any way to change the style of a WPF menu to make it look like a Windows Forms menu?

British answered 30/6, 2011 at 7:11 Comment(6)
You mean this one (WinForms picture) code-magazine.com/… ?Otterburn
Yup. notice the fancy gradient winforms has on its menus and toolbarsBritish
i have been waiting for 20 minutes and have got only like 12 views and ONE RESPONSE? is everyone dead?British
He he - yes I think everyone is dead .. by the way yes you can get the toolstrip to look like the forms one - and even cooler. Did you try the wpf toolstrip?Giffard
@burning: maybe [winforms] just doesn't draw a crowd...Extrasensory
@Rune Does the wpf toolstrip support drop down menus?British
G
6

try this:

An introduction to styling and templating: http://msdn.microsoft.com/en-us/library/ms745683.aspx

A new styling for toolbar http://msdn.microsoft.com/en-us/library/aa970772.aspx

Alternatively search for wpf ToolBar style

Edit: Yes - but add a menu like this and the toolbar alters the menu style (paste in new project):

<Grid>
<Grid.RowDefinitions>
  <RowDefinition Height="Auto"></RowDefinition>
  <RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ToolBarTray >
  <ToolBar >
  <Menu>
    <MenuItem Header="Hey">
      <MenuItem Header="lo"></MenuItem>
    </MenuItem>
    <MenuItem Header="Ho">
      <MenuItem Header="la"></MenuItem>
    </MenuItem>
  </Menu>
</ToolBar>
</ToolBarTray>

Giffard answered 30/6, 2011 at 7:53 Comment(2)
I wanted to know about menus not toolbars. But still this helps. Thanks!British
Awesome , thanks! I was wrong about WPF , its even better than windows forms! an upvote and tick!British
E
1

The Menu, like most WPF controls has very little styling by default.

But that's just by default, you can add your own styles and outshine WinForms very easily .

Just a little starter:

    <Menu DockPanel.Dock="Top" >
        <Menu.Background>
            <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                <GradientStop Color="White" Offset="0" />
                <GradientStop Color="Blue" Offset="1" />
            </LinearGradientBrush>
        </Menu.Background>
        <MenuItem Header="_File" >
Extrasensory answered 30/6, 2011 at 7:56 Comment(3)
Thanks! So you can even decide what gradient to use!British
Yes, with as many points and colors as you like. Also look at ImageBrush, RadialGradientBrush, ... And do use Styles.Extrasensory
@HenkHolterman Does it have bad effects on memory usage & Performance?Standard

© 2022 - 2024 — McMap. All rights reserved.