2013-04-04 122 views
14

我輸了GroupBox,他們的標題文字必須是Bold。我知道如何做到這一點的一個GroupBox如何使用GroupBox標題的樣式?

<GroupBox> 
    <GroupBox.Header> 
     <TextBlock Text="HEADER TEXT" FontWeight="Bold"/> 
    </GroupBox.Header> 
</GroupBox> 

但我想知道如何與Styles做到這一點。這是我曾嘗試:

<Style TargetType="GroupBox"> 
    <Setter Property="BorderBrush" Value="{StaticResource lightBlueBrush}"/> 
    <Setter Property="Margin" Value="25,1,5,5"/> 
    //<Setter ?? 
</Style> 

我已經試過<Setter Property="HeaderTemplate" Value={StaticResource myTemp}>myTemp是一個簡單的DataTemplate但是VS突然關門!我不知道我是否以正確的方式做到這一點,所以任何人都可以幫助我?

編輯:請在發佈它作爲答案之前測試您的想法!

+2

LOL *請在發佈之前測試您的想法作爲答案!* - 請給我們提供信息,以便我們能夠幫助您。 *拋出異常*是不夠的。至少需要說明例外的內容,告訴你什麼是錯的。 – DHN 2013-04-04 11:23:50

回答

24

您是否嘗試過以下方法?

<Style TargetType="GroupBox"> 
    <Setter Property="BorderBrush" Value="{StaticResource lightBlueBrush}"/> 
    <Setter Property="Margin" Value="25,1,5,5"/> 
    <Setter Property="HeaderTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <TextBlock Text="{Binding}" FontWeight="Bold"/> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

用法:

<GroupBox Header="Title" /> 
+1

是的,我嘗試了這樣的事情,但設計師拋出異常 – 2013-04-04 10:36:21

+0

你嘗試過我發佈的內容嗎?設計師拋出什麼樣的例外? – DHN 2013-04-04 11:16:18

+0

您是否更改了解決方案?我試過了,這次它工作。謝謝。 – 2013-04-04 11:28:41

1

甲groupboxs HeaderTemplate中是一種類型的DataTemplate的。所以你應該提供一個保證樣式或模板的數據模板對象。

試試下面一個。

<Window.Resources> 

     <DataTemplate x:Key="DataTemplate1"> 
      <TextBlock Text="Test Templated Header"/> 
     </DataTemplate> 

    </Window.Resources> 
    <Grid> 
     <GroupBox Header="Test Header" HeaderTemplate="{StaticResource DataTemplate1}"> 
      <Border BorderBrush="Red" Margin="10"> 
       <TextBlock Text="Hello"/> 
      </Border> 
     </GroupBox> 
    </Grid> 
+1

所以GroupBox的頭部將是「Test Header」或「Test Templated Header」 – 2013-04-04 11:15:48

+0

我試過了,沒有工作(標題文本有問題)。 – 2013-04-04 11:17:56

+0

它對我來說工作正常 – ghord 2013-04-04 11:24:14