一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

WPF4Ribbon開發(fā)之應(yīng)用程序菜單(ApplicationMenu)

 gljin_cn 2016-07-21

     在上一篇中我們完成了快捷工具欄的開發(fā),本篇將講解應(yīng)用程序菜單開發(fā)的相關(guān)內(nèi)容。如下圖所示,點(diǎn)擊程序窗口左上角的記事本圖標(biāo)(Application Button)會顯示出應(yīng)用程序菜單(Application Menu)列表,列表中的按鍵即為軟件的一些基本功能。

ApplicationMenu

RibbonCommand

以“Open”按鍵為例,首先仍然需要在<RibbonWindow.Resources>中定義其<RibbonCommand>內(nèi)容。

<r:RibbonCommand x:Key="OpenCommand" LabelTitle="Open"
                 CanExecute="OpenCommand_CanExecute"
                 Executed="OpenCommand_Executed"
                 SmallImageSource="Images/Open.png"
                 LargeImageSource="Images/Open.png"
                 ToolTipTitle="Open" 
ToolTipDescription="Open document" />

為<RibbonCommand>添加Command 事件實(shí)現(xiàn)打開文檔功能:

private void OpenCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = true;
}

private void OpenCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
    ShellContainer sc = KnownFolders.DocumentsLibrary as ShellContainer;
    CommonOpenFileDialog cofd = new CommonOpenFileDialog();
    cofd.InitialDirectoryShellContainer = sc;
    cofd.DefaultExtension = ".txt";
    cofd.Filters.Add(new CommonFileDialogFilter("Text Files", "*.txt"));
    if (cofd.ShowDialog() == CommonFileDialogResult.OK)
    {
        txtBox.Text = File.ReadAllText(cofd.FileName, Encoding.Default);
    }
}

ApplicationMenu

     <RibbonCommand>完成后繼續(xù)在<Ribbon>中添加<RibbonApplicationMenu>用于設(shè)置菜單列表中的內(nèi)容。其中<RibbonApplicationMenuItem>即為菜單按鍵,將相應(yīng)的<RibbonCommand>添加到Command 屬性中。另,按鍵之間可用<Separator>作為分隔。

<r:Ribbon DockPanel.Dock="Top" FocusManager.IsFocusScope="True" Title="WPF4 Notepad">
    <r:Ribbon.ApplicationMenu>
        <r:RibbonApplicationMenu Command="{StaticResource AppMenuCommand}">
            <r:RibbonApplicationMenuItem Command="{StaticResource OpenCommand}" />
            <r:RibbonApplicationMenuItem Command="{StaticResource SaveCommand}" />
            <Separator/>
            <r:RibbonApplicationSplitMenuItem Command="{StaticResource SendAsCommand}">
                <r:RibbonApplicationMenuItem Command="{StaticResource MailCommand}" />
                <r:RibbonApplicationMenuItem Command="{StaticResource TwitterCommand}" />
            </r:RibbonApplicationSplitMenuItem>
            <Separator/>
            <r:RibbonApplicationMenuItem Command="{StaticResource CloseCommand}" />
        </r:RibbonApplicationMenu>
    </r:Ribbon.ApplicationMenu>
</r:Ribbon>

     上面代碼中對于存在子菜單的按鍵(例如,SendAs 按鍵)可用<RibbonApplicationSplitMenuItem>對其進(jìn)行擴(kuò)展。子菜單標(biāo)題內(nèi)容可通過<RibbonCommand>的LabelDescription 屬性進(jìn)行設(shè)置(如下代碼)。

<r:RibbonCommand x:Key="SendAsCommand" LabelTitle="SendAs"
                 LabelDescription="Send this text to the World"
                 CanExecute="SendAsCommand_CanExecute"
                 SmallImageSource="Images/SendAs.png"
                 LargeImageSource="Images/SendAs.png"
                 ToolTipTitle="SendAs" 
                 ToolTipDescription="Send this text to the World" />

AppMenu

ApplicationButton

     最后來完成應(yīng)用程序菜單圖標(biāo)(記事本圖標(biāo))的開發(fā)。當(dāng)然也需要通過<RibbonCommand>進(jìn)行設(shè)置,與之前不同之處在于不用添加CanExecute 和Executed 內(nèi)容。

<r:RibbonCommand x:Key="AppMenuCommand" LabelTitle="Application Button"
                 SmallImageSource="Images/Notepad.png"
                 LargeImageSource="Images/Notepad.png"
                 ToolTipTitle="WPF4 Notepad" 
                 ToolTipDescription="Notepad Application with Ribbon Sample" />

     將<RibbonCommand>加入<RibbonApplicationMenu> Command 屬性后默認(rèn)情況呈現(xiàn)下圖樣式,圖標(biāo)的形狀并不與Office 2007 一樣為圓形。

AppBtn

     如果想要圓形效果其實(shí)也很簡單,Ribbon 控件庫為我們提供了三種樣式模板:Office2007Black、Office2007Blue、Office2007Silver,只需在MainWindow() 中加入一行代碼即可實(shí)現(xiàn)圓形效果和不同的Ribbon 樣式。

public MainWindow()
{
    InitializeComponent();
    this.Resources.MergedDictionaries.Add(PopularApplicationSkins.Office2007Black);
}

Black

Blue

Silver

     本篇關(guān)于應(yīng)用程序菜單的開發(fā)就介紹到這里,下篇將正式進(jìn)行標(biāo)簽工具欄(Tab Toolbar)的開發(fā)內(nèi)容。同時(shí)本示例源代碼也將一同公布。敬請關(guān)注… …


原文鏈接:http://www.cnblogs.com/gnielee/archive/2010/05/11/wpf4-ribbon-application-menu.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲熟妇熟女久久精品| 午夜福利直播在线视频| 99一级特黄色性生活片| 一区二区日本一区二区欧美| 国内精品美女福利av在线| 东京热一二三区在线免| 国产中文字幕一二三区| 日韩精品人妻少妇一区二区| 国产av熟女一区二区三区蜜桃| 99久久国产精品免费| 亚洲精品小视频在线观看| 日韩在线中文字幕不卡| 深夜日本福利在线观看| 五月激情婷婷丁香六月网| 国产精品第一香蕉视频| 亚洲中文字幕视频在线播放| 99久久免费看国产精品| 99久久免费看国产精品| 九九热国产这里只有精品| 国产黄色高清内射熟女视频| 中文字幕无线码一区欧美| 婷婷基地五月激情五月| 天堂热东京热男人天堂| 91久久精品中文内射| 国内自拍偷拍福利视频| 日本精品理论在线观看| 久久99精品国产麻豆婷婷洗澡 | 国产av一区二区三区久久不卡| 麻豆最新出品国产精品| 欧美日韩国产福利在线观看| 日韩欧美国产三级在线观看| 国产肥女老熟女激情视频一区| 国产目拍亚洲精品区一区| 加勒比人妻精品一区二区| 不卡一区二区高清视频| 日韩精品免费一区三区| 加勒比人妻精品一区二区| 亚洲一区二区精品福利| 欧美黑人暴力猛交精品| 毛片在线观看免费日韩| 激情爱爱一区二区三区|