2010-07-28 152 views
1

我可以這樣做嗎?WPF:GroupBox標題中的資源

   <GroupBox.Header> 
        <GroupBox.Header.Resources> 
         <Style TargetType="Label"> 
          <Setter Property="Foreground" Value="White"/> 
         </Style> 
        </GroupBox.Header.Resources> 
        <StackPanel Orientation="Horizontal"> 
         <Label Content="Realtime Event Viewer" VerticalAlignment="Center"/> 
         <Label Content="Watching: " Margin="20,0,0,0" VerticalAlignment="Center"/> 
         <Label Content="{Binding MonitorServerName}" VerticalAlignment="Center"/> 
        </StackPanel> 
       </GroupBox.Header> 

回答

3

您正在將GroupBox對象的Header屬性設置爲StackPanel對象。如果你希望在Header中有可用的資源,將它們添加到StackPanel對象的Resources中:

<GroupBox.Header> 
    <StackPanel Orientation="Horizontal"> 
     <StackPanel.Resources> 
      <Style TargetType="Label"> 
       <Setter Property="Foreground" Value="White"/> 
      </Style> 
     </StackPanel.Resources> 
     <Label Content="Realtime Event Viewer" VerticalAlignment="Center"/> 
     <Label Content="Watching: " Margin="20,0,0,0" VerticalAlignment="Center"/> 
     <Label Content="{Binding MonitorServerName}" VerticalAlignment="Center"/> 
    </StackPanel> 
</GroupBox.Header> 
+0

那不是我之後。我不一定在頭部有一個堆棧面板,它可能是一個不同的容器,或者甚至只是一個標籤本身。 – 2010-07-28 14:21:28

+0

@Jonathan:那我覺得我不太明白你想要做什麼。您可以添加到GroupBox的Resources屬性,並且資源將在Header中可用,因爲它們將位於可視化樹中的祖先中。如果它是從FrameworkElement或FrameworkContentElement繼承的任何東西,您還可以將其添加到分配給Header屬性的對象的Resources屬性中。 XAML沒有設置屬性屬性的語法,因此您需要在創建對象時設置該屬性。你試圖做這個語法不支持? – Quartermeister 2010-07-28 15:22:26

+0

我希望組框標題中的所有標籤都是白色的。我不希望組框內容中的標籤發生變化。我最終希望將其應用於我的資源文件,以便影響所有組框。 – 2010-07-28 18:13:11