2011-04-26 70 views
2

我有一個XAML文件以下樣式:錯誤與背景樣式

<Style x:Key="LabelText" 
      TargetType="TextBlock"> 
       <Setter Property="FontFamily" Value="Segoe Black"/> 
       <Setter Property="FontSize" Value="14"/> 
       <Setter Property="Foreground" Value="#FFB3B4C1"/> 
       <Setter Property="TextAlignment" Value="Center"/> 
       <Setter Property="VerticalAlignment" Value="Center"/> 
       <Setter Property="Background" Value="#FF3B596E"/> 
      </Style> 

不幸的是,

<Setter Property="Background" Value="#FF3B596E"/> 

不是由Visual Studio的認可,所以我的XAML網頁贏得」噸負載。如果我刪除了背景設置器,它可以工作,但我需要這個背景。

有沒有某種解決方法可以解決這個問題?

+0

你或許應該提到這一點是Silverlight的...這工作正常WPF,因爲背景屬性在FrameworkElement的定義,而不是控制 – 2011-04-26 19:31:09

回答

2

在Silverlight中TextBlock類沒有Background屬性,它總是透明的。如果您希望它具有背景色,請將其放置在另一個控件中,如Border,您可以在其中設置背景色。

另一種選擇是使用Label而不是TextBlock

+0

我有一個可怕的很多使用這種風格的元素,是有可能把「圍繞樣式」的邊框,而不必重寫幾乎所有的代碼? – Matthias 2011-04-26 19:36:17

+0

@Matthias,不,這是不可能的。你不能把它放在一個模板中,因爲TextBlock不是一個控件,也沒有模板...最簡單的方法可能是用標籤替換TextBlocks – 2011-04-26 21:09:51

0

您可以採用類似於jQuery的方法,並在加載頁面以包裝具有邊框的所有文本塊(使用適當的樣式)時行走可視化樹。

0

您也可以使用ContentControl而不是TextBlock,那麼不需要包裝視覺。

<ContentControl Content='MyText' Background="#FF3B596E" />