Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

7年前关闭。



Improve this question




我正在寻找一种类似于在Azure上找到的图片的控件,但适用于WPF。

我只是想知道这是否是可以在WPF或代码中启动这样的项目的预制控件(来自MS还是其他人?)。我已经尝试过tabcontrol,但是它没有滑动 Blade 。

最佳答案

当然,图像中的控件只是具有自定义MenuControlTemplate控件。我们可以给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。您需要将MenuItem的下一个级别从当前Popup控件移到Grid的下一个列。

开始这项工作的最好方法是使用默认的ControlTemplate,然后在正常工作后根据自己的喜好对其进行“调整”。您可以在MSDN上的Menu Styles and Templates页面中找到默认的ControlTemplate。可以在MenuItem ControlTemplate Example页面上找到另一个资源,尽管它可能具有相同的代码,但我不确定。

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

关于c# - WPF-Windows Azure样式TabControl(?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20139422/

10-11 02:01