WPF功能区ApplicationMenu对齐权利?

时间:2009-09-29 13:01:37

标签: wpf ribbon alignment

在完成教程时,'ribbon.ApplicationhMenu'总是出现在屏幕的左侧,而不是右侧,就像在Office 2007,Paint(在Windows 7上)和写字板(在Windows上)一样7)。

有没有办法改变这个?

谢谢

(问题的例子在这里http://cid-a45fe702de180b23.skydrive.live.com/self.aspx/Public/RibbonAnnoyance.png(作为新用户,我只能发布1个超链接))

2 个答案:

答案 0 :(得分:1)

感谢您的回复。是的,我正在使用Office团队中的Ribbon / FluentUI

抱歉,我无法登录我22小时前创建的'M.Ahrens'帐户(它不是OpenID帐户,我不确定如何在没有OpenID的情况下登录,所以我我现在变成了一个OpenID)。

我之前无法发布教程链接(因为新用户只能发布1个超链接),但这里是: http://www.renevo.com/blogs/dotnet/archive/2009/02/10/your-first-wpf-ribbon-application.aspx

它不仅发生在本教程中,它发生在我制作的所有其他功能区应用程序中(包括Microsoft示例)。我尝试了流动:

*的Horizo​​ntalAlignment = “右”

* Horizo​​ntalContentAlignment = “右”

* FlowDirection =“RightToLeft”(使ApplicationMenu向右移动,但切换列)

*默认

但它似乎没有什么不同,ApplicationMenu仍然在'左'手边(除非我最大化窗口)。

M.Ahrens

+++++++++++++++++++++++++

编辑(添加了代码示例):

<r:RibbonWindow
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
    Height="400" Width="400">

    <DockPanel>
        <r:Ribbon DockPanel.Dock="Top">
            <r:Ribbon.ApplicationMenu>
                <r:RibbonApplicationMenu>
                </r:RibbonApplicationMenu>
            </r:Ribbon.ApplicationMenu>
        </r:Ribbon>
    </DockPanel>
</r:RibbonWindow>

答案 1 :(得分:0)

您使用的是OfficeUI团队的WPF功能区吗?

我们正在使用那个并且不会发生任何类似的事情。可能会发布一些您用来创建应用程序菜单的XAML。

编辑:看看你的代码,我怀疑DockPanel有点傻。

这就是我们如何构建布局以添加功能区

<r:RibbonWindow x:Class="MyAssembly.Main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
Title="The Title"
Height="450" 
Width="600" >

<Grid x:Name="grdMain">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <r:Ribbon Title="The Title" x:Name="ribbonMain" Grid.Row="0">
        <!--Quick Access Toolbar-->
        <r:Ribbon.QuickAccessToolBar>
            <r:RibbonQuickAccessToolBar>
            </r:RibbonQuickAccessToolBar>
        </r:Ribbon.QuickAccessToolBar>

        <!--Application Menu-->
        <r:Ribbon.ApplicationMenu>
            <r:RibbonApplicationMenu x:Name="mnuApplication">
                <!--App Menu Items-->
                <r:RibbonApplicationMenu.Items>
                </r:RibbonApplicationMenu.Items>
                <!--App Menu Recent Item List-->
                <r:RibbonApplicationMenu.RecentItemList>
                    <StackPanel>
                        <r:RibbonLabel>Recent Items</r:RibbonLabel>
                        <r:RibbonSeparator/>
                        <r:RibbonHighlightingList x:Name="lstRecentItems"/>
                    </StackPanel>
                </r:RibbonApplicationMenu.RecentItemList>
                <!--App Menu Footer-->
                <r:RibbonApplicationMenu.Footer>
                </r:RibbonApplicationMenu.Footer>
            </r:RibbonApplicationMenu>
        </r:Ribbon.ApplicationMenu>
    </r:Ribbon>

    <Grid Grid.Row="1">
      <!--This is the aread under the ribbon. Place layout things inside of this space-->
    </Grid>
</Grid> </r:RibbonWindow> <!--This is closing tag is on this line as SO is being silly-->

正如我所提到的,我怀疑DockPanel只是傻傻的,所以我现在测试它有点晚了(12点)。 尝试将此代码复制到您的XAML中,看看会发生什么。

坦率地说,我不太相信DockPanels,Grids对我的工作要好得多:D