如何创建一个左对齐的水平菜单栏,如图像中的那个?

时间:2017-03-05 14:26:29

标签: c# wpf winforms controls

Application whose style I would like to copy

我非常喜欢这个应用程序的整体设计和风格,我确信它是由C#开发的。我宁愿不违反任何版权并反汇编该项目,而是创建我自己的菜单,灵感来自这个。 另外,我想尽可能使用Winforms

我将如何做这样的事情? 我可以从中学到任何值得注意的开源控件吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是wpf,则可以使用2帧:

1)按钮

StackPanel(垂直方向)>>将按钮放在

2)页面

将页面放在第二帧中 *使用第三帧作为应用标题。
创建一个具有属性的类,以跟踪要加载到第二帧的页面。因此,当您在第1帧中单击“主”按钮时,所需页面将加载到第2帧中 示例:

public static class ActivePages
    {
        private static Uri mainFramePage;
        private static Uri headerFramePage;

        public static Uri MainFramePage
        {
            get { return mainFramePage; }
            set
            {
                mainFramePage = value;
                if (value == SignIn)
                {
                    HeaderFramePage = EmptyHeader;
                }
                OnPropertyChanged(new PropertyChangedEventArgs("MainFramePage"));            }
        }
        public static Uri HeaderFramePage
        {
            get { return headerFramePage; }
            set
            {
                headerFramePage = value;
                OnPropertyChanged(new PropertyChangedEventArgs("HeaderFramePage"));
            }
        }
        public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
        static ActivePages()
        {
            SignIn = new Uri("Pages/SignIn.xaml",UriKind.Relative);
        }
        private static void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (StaticPropertyChanged != null)
            {
                StaticPropertyChanged(null, e);
            }
        }
    }

这是框架的xaml代码

<Frame x:Name="frmMain" Source="{Binding Path=(currentPage:ActivePages.MainFramePage),Mode=OneWay}"/>