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