2016-12-21 6 views
1

Ich muss den ersten Teil eines GroupBox-Headers fett und den anderen Teil nicht fett formatieren. Hier ist das Ziel, das ich zu erreichen bin versucht:XAML: Wie mache ich einen Teil eines GroupBox-Headers fett?

Students (Max: 32)

 <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Margin="40, 80, 40, 80"> 
     <GroupBox.Header> 
      <Span FontWeight="Bold">Students</Span> 
      (Max: 32) 
     </GroupBox.Header> 
     <StackPanel> 
     ... 

Das gibt mir den Fehler: Die Eigenschaft "Header" wird mehr als einmal gesetzt.

Ich weiß, dass es für Textblocks funktioniert, aber ich kann es nicht für GroupBox Headers geschehen:

 <TextBlock> 
      <Span FontWeight="Bold">Students</Span> 
      <Span>(Max: 32)</Span> 
     </TextBlock> 

Dank.

Antwort

1

GroupBox.Header kann nur eine Sache enthalten, aber diese eine Sache kann einfach alles sein, was du magst. Es kann für ein geeignetes Beispiel eines TextBlock mit teilweise fett Inhalt, sein:

<GroupBox.Header> 
    <TextBlock> 
     <Span FontWeight="Bold">Students</Span> 
     <Span>(Max: 32)</Span> 
    </TextBlock> 
</GroupBox.Header> 

In XAML viele Kontrollen haben Eigenschaften Content oder Header genannt, die Object vom Typ sind. Sie können immer eine string geben, aber Sie können auch jede Art von Vorlagen oder formatierten Inhalten verwenden, die Sie mögen. In Windows Forms mussten die Kopf- oder Gruppenfeldköpfe der Menüelemente Strings sein, es sei denn, Sie waren in der Stimmung, in Echtzeit mit dem Code des Eigentümers zu experimentieren. In XAML können sie alles sein XAML können, bis zu dem Punkt Lächerlichkeit machen:

<GroupBox> 
    <GroupBox.Header> 
     <GroupBox Header="I Heard You Like GroupBox Headers"> 
      LOL 
     </GroupBox> 
    </GroupBox.Header> 
    <GroupBox Header="Content Box">Content</GroupBox> 
</GroupBox> 

Es ist wie ein unendlich rekursive Schweizer Taschenmesser, wo jede Klinge auch ein Schweizer Taschenmesser ist, genau wie seine Eltern.

enter image description here

+1

Nur eine kurze Notiz hinzufügen, die mir viel einmal geholfen, wie Ed sagt, es ist nur über das, was da enthalten, können Sie es [template Ebene] (https://msdn.microsoft.com /en-us/library/ms744748(v=vs.110).aspx) Es ist ein 'ContentPresenter', so dass Sie fast jedes CLR-Objekt darin ablegen können und auf Vorlagenebene können Sie ihm eine Menge cooler Funktionalität hinzufügen wie benutzerdefinierte Tooltips zu Interaktionsereignissen, zu was auch immer. Super handlich in einigen Fällen. :) +1 –

+1

Das klang sehr einfach mit der Erklärung, die Sie angegeben haben. Vielen Dank. – MrProgrammer

1
<GroupBox.Header> 
       <TextBlock> 
        <Span FontWeight="Bold">Students</Span> 
        <Span>(Max: 32)</Span> 
        </TextBlock> 
      </GroupBox.Header> 
+0

Danke. Es funktionierte. – MrProgrammer

Verwandte Themen