如何使WPF菜单看起来像Windows Forms的ToolStripMenu?

9

我刚开始学习WPF,也就是今天刚拿到了.net 3.5。我通常在Windows Forms中进行GUI开发,并喜欢强大的ToolStripMenu。但是当我看到WPF菜单时,它太丑了,让我想起了Win32 Api时代。有没有办法改变WPF菜单的样式,使其看起来像Windows Forms菜单?


1
是的。注意WinForms在菜单和工具栏上拥有的漂亮渐变效果。 - ApprenticeHacker
我已经等了20分钟,只有12个浏览量和一个回复?大家都死了吗? - ApprenticeHacker
1
嘿嘿 - 是的,我想每个人都死了.. 顺便说一下,是的,你可以让工具栏看起来像表单 - 而且更酷。你试过WPF工具栏吗? - Rune Andersen
@burning:也许[winforms]只是不太受欢迎... - H H
@Rune,WPF工具栏支持下拉菜单吗? - ApprenticeHacker
2个回答

6

尝试这个:

样式和模板介绍:http://msdn.microsoft.com/en-us/library/ms745683.aspx

工具栏的新样式:http://msdn.microsoft.com/en-us/library/aa970772.aspx

或者搜索wpf工具栏样式。

编辑: 是的-但是添加一个像这样的菜单,工具栏会改变菜单样式(在新项目中粘贴):

<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>


我想了解菜单而不是工具栏。但这仍然有所帮助。谢谢! - ApprenticeHacker
太棒了,谢谢!我对WPF的看法错了,它甚至比Windows窗体还好!点个赞和打勾! - ApprenticeHacker

1

菜单,像大多数WPF控件一样,默认情况下几乎没有样式。

但这只是默认情况,你可以很容易地添加自己的样式并且轻松超越WinForms。

只需要一个小入门:

    <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" >

谢谢!所以您甚至可以决定使用哪种梯度! - ApprenticeHacker
是的,您可以使用任意数量的点和颜色。还可以查看ImageBrush、RadialGradientBrush等。并且请使用样式。 - H H
@HenkHolterman 它会对内存使用和性能产生不良影响吗? - Anirudha Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接