2017-08-17 13 views
-1

TextElement.Foregroundは機能していませんが、Background = RedとFontWeight = Boldは問題なく動作しています。 Foregroundがカスタムスタイルを適用していない理由は何ですか?コンボボックス内のチェックボックステキストをカスタマイズするにはどうすればよいですか?

<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <CheckBox Name="ChkDayResource" Style="{DynamicResource CheckBoxBlueStyle}" 
          IsChecked="{Binding Path=IsSelected}" 
          Tag="{Binding Path=., RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}, AncestorLevel=1}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
          Click="ChkDayResource_Click" Content="{Binding Path=DayName}"> 
      </CheckBox> 
      <!--<TextBlock Width="Auto" Text="{Binding Path=DayName}" IsHitTestVisible="True"/>--> 
     </StackPanel> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 
<ComboBox.ItemContainerStyle> 
    <Style TargetType="{x:Type ComboBoxItem}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ComboBoxItem}"> 
        <Border x:Name="Bd" 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="0" 
         Margin="-1,0,-1,0" 
         Background="{TemplateBinding Background}"> 
         <StackPanel Orientation="Horizontal" Margin="10,0,10,0"> 
          <ContentPresenter x:Name="content" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
         </StackPanel> 
        </Border> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsHighlighted" Value="True"> 
          <Setter TargetName="Bd" Property="Background" Value="Red" /> 
          <Setter Property="TextElement.Foreground" Value="Yellow" /> 
          <Setter Property="TextElement.FontWeight" TargetName="content" Value="Bold" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ComboBox.ItemContainerStyle> 

enter image description here

それが原因私はチェックボックスに適用CheckBoxBlueStyleにですか?はいの場合、どのようにスタイリングを無効にすることができますか?

+0

PLSが与えられたコードとスクリーンとの間の異なるを無視します。背景とフォントウェイトが正常に動作しています。 – soniality

+0

SetterにTargetName属性がありません... –

答えて

0

デフォルト値はCheckBoxStyleです。ブレンド、例えば、それを検査することは明らかに:

<Style x:Key="CheckBoxStyle1" TargetType="{x:Type CheckBox}"> 
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> 
    <!-- other property setters --> 
</Style> 

だから、あなたがデフォルト1を使用しない場合は、直接またはスタイルを通じて新しいForegroundを割り当てる必要があります。

解決策:

<CheckBox Name="ChkDayResource" Foreground="{Binding Path=(TextElement.Foreground),RelativeSource={RelativeSource AncestorType=StackPanel}}" 
関連する問題