RibbonControl:中心标题

时间:2011-06-29 17:06:28

标签: wpf ribbon-control

我在UserControl上使用Microsoft RibbonControl(它需要这样我们可以将它托管在存根表单上以在我们的MDI系统中托管WPF)。可悲的是,功能区的标题在功能区的标题中显示顶部/左侧,看起来很荒谬。我怎么得到那个傻瓜?

1 个答案:

答案 0 :(得分:3)

我现在正在做同样的事情。我通过使用带状标题的数据模板来解决它:

<r:Ribbon.TitleTemplate>
    <DataTemplate>
        <TextBlock Text="Put you title here" Margin="3,3,0,0"></TextBlock>
    </DataTemplate>
</r:Ribbon.TitleTemplate>

如果在RibbonWindow中使用功能区,您可能还想在标题文本中添加一个发光,以便在放置在深色背景上时能够正确读取它。在这种情况下,在TextBlock中添加此XAML:

<TextBlock.BitmapEffect>
    <OuterGlowBitmapEffect GlowColor="White" Opacity="0.7" GlowSize="10"/>
</TextBlock.BitmapEffect>

在RibbonWindow中使用功能区时还有一个问题;当窗口状态为“正常”或窗口最大化时,标题文本将正确放置。为了解决这个问题,我将TextBlock Margin绑定到codebind中的一个属性:

public Thickness TitleMargin
{
    get { return this.WindowState == WindowState.Maximized ? new Thickness(0, 3, 0, 0) : new Thickness(0); }
}

要使其正常工作,您还需要在每次窗口状态更改时触发PropertyChanged事件:

protected override void OnStateChanged(EventArgs e)
{
    OnPropertyChanged("TitleMargin");
    base.OnStateChanged(e);
}