2013-11-22 43 views
3

我正在寻找一个类似于图片中的控件。WPF - Windows Azure风格TabControl(?)

我相信这是某种tabcontrol?或者只是拨动按钮& stackpanels?

是否有人知道是否有人做出了这个和/或这种类型的控件被调用。 (我知道我能建造这种使用的ToggleButtons和stackpanels的切换可见性) 我只是想知道这是否是一个预制控制(无论是从MS,还是别人?) 非常感谢你

enter image description here

+1

据我所知,恐怕没有预制控制,你可以把它称为** nav expander **(来自html源代码),并且我认为它不是你自己的简单impl –

+0

我在想同样,很容易与stackpanels和togglebuttons实现:) - 也许虐待创建所有使用的控制:) - 时间将告诉 – VisualBean

+1

嗨,没有任何可用的解决方案,我继续并实现了上述的Azure管理门户导航风格在WPF中使用ListBoxes。 你可以在这里查看样式的最终结果 - > http://arbitrarybytes.blogspot.in/2014/05/azure-portal-navigation-style-in-wpf.html 由于议题关闭我无法直接在这里粘贴样式。但是xaml文件在这里可用 - > http://goo.gl/LB5IT8 希望这有助于您随时对博客文章发表任何评论和建议。 – Vaibhav

回答

3

当然,图像中的控件只是一个Menu控件,该控件具有自定义ControlTemplate。我们可以给Menu控件一个新的ItemsPanelTemplate使其垂直工作,而不是通常的水平外观。不幸的是我没有时间来完成这一点,但我已经开始你了:

<Menu FontFamily="Segoe UI" Background="#FF3C454F" TextElement.Foreground="White"> 
    <Menu.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Vertical"/> 
     </ItemsPanelTemplate> 
    </Menu.ItemsPanel> 
    <Menu.Resources> 
     <Style TargetType="MenuItem"> 
      <Setter Property="Padding" Value="40, 20" /> 
     </Style> 
    </Menu.Resources> 
    <MenuItem Header="COMPUTER"> 
     <MenuItem Header="WEBSITE" /> 
     <MenuItem Header="VIRTUAL MACHINE" /> 
     <MenuItem Header="MOBILE SERVICE" /> 
    </MenuItem> 
    <MenuItem Header="DATA SERVICES"> 
     <MenuItem Header="WEBSITE" /> 
     <MenuItem Header="VIRTUAL MACHINE" /> 
     <MenuItem Header="MOBILE SERVICE" /> 
    </MenuItem> 
    <MenuItem Header="NETWORK SERVICES"> 
     <MenuItem Header="WEBSITE" /> 
     <MenuItem Header="VIRTUAL MACHINE" /> 
     <MenuItem Header="MOBILE SERVICE" /> 
    </MenuItem> 
</Menu> 

目前仍然很多为你做虽然......最重要的部分将是定义一个新的ControlTemplateMenuMenuItem s。您需要将MenuItem的下一级别从当前的Popup控件移动到Grid中的下一列。

开始这项工作的最好方法是使用默认的ControlTemplate,然后按照自己喜欢的方式“调整”它,一旦你使它正常工作。您可以在MSDN上的Menu Styles and Templates页面找到默认ControlTemplate。另一个资源可以在MenuItem ControlTemplate Example页面找到,虽然它可能有相同的代码,我不太确定。

我想要做的最后一点是,如果这个项目对您来说太难了,您可以使用多个ListBox控件使您的UI看起来像您的图像,其中项目表示菜单项。根据用户点击的上一个菜单项来更改项目会非常容易。