2011-06-29 69 views
2

我使用的是微軟RibbonControl上的用戶控件(它需要的,所以我們可以承載它存根聯上主辦的WPF在我們的MDI系統)。不幸的是,功能區的標題顯示功能區標題中的頂部/左側,看起來很荒謬。我如何得到那個吸盤?RibbonControl:中心標題

回答

3

我現在工作在幾乎同樣的事情。我解決它通過使用一個DataTemplate的絲帶標題:

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

如果色帶是在RibbonWindow使用,你可能也想輝光添加到標題文本,以便能夠正確讀取它時,放置在一個黑暗的背景。在這種情況下,將此XAML添加到TextBlock中:

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

在RibbonWindow中使用功能區時還有一個問題;當窗口狀態爲「正常」或窗口最大化時,標題文本將被正確放置。爲了解決這個問題我勢必將TextBlock保證金的財產在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); 
} 
+0

尼斯,但是BitmapEffect在標題模板中不會出現。有什麼理由嗎? – arconaut

+0

是的,BitmapEffect已被棄用,不再工作。不是你。對不起,除了您可能不想使用的怪異DirectX效果黑客之外,我別無選擇。 – Stu