如何将WPF RibbonWindow的标题居中?

时间:2012-10-18 16:33:22

标签: wpf ribbon

我想将RibbonWindow的标题居中,而不是让它在侧面对齐。

这个帖子说它有一个答案: Center WPF RibbonWindow Title via XAML Code

但它不起作用。

Bellow是一张图片和相应的代码。

title not centered

    <RibbonWindow x:Class="Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
        <Ribbon>
            <Ribbon.TitleTemplate>
            <DataTemplate>
                <TextBlock TextAlignment="Center" HorizontalAlignment="Stretch" Width="{Binding ElementName=Window, Path=ActualWidth}">ApplicationTitle
                    <TextBlock.Effect>
                        <DropShadowEffect ShadowDepth="0" Color="MintCream " BlurRadius="10"   />
                    </TextBlock.Effect>
                </TextBlock>
            </DataTemplate>
            </Ribbon.TitleTemplate>
        </Ribbon>
    </Grid>
    </RibbonWindow>

我使用的是VS 2012,包含.NET 4.5和随附的System.Windows.Controls.Ribbon程序集。

2 个答案:

答案 0 :(得分:5)

使用RibbonControlsLibrary进行WPF有一个糟糕的经历。它不仅涉及标题中心问题。它还会打破顶部的窗口圆角,图标和标题在最大化时从屏幕中消失,而且我个人没有找到编写功能区组对话框的机会。所有这一切都促使我寻找替代方案,我找到了Fluent Ribbon Controls Suite

下载源代码并为.NET 4.5构建它(我完全没有问题)。

答案 1 :(得分:1)

绑定中的ElementNameWidth="{Binding ElementName=Window, Path=ActualWidth}")需要与RibbonWindow的名称匹配。因此,在这种情况下,您需要“Window”作为名称:

<RibbonWindow x:Class="Window1" x:Name="Window"
    ... />