代码之家  ›  专栏  ›  技术社区  ›  Sirop4ik

如何在组合框中仅在表示行中设置粗体,而不在整个下拉列表(WPF)中设置粗体?

c#
  •  0
  • Sirop4ik  · 技术社区  · 6 年前

    我已经在我的 DataGrid ComboBox IsColorCalibFolderBold 此属性的属性 知道什么时候应该用粗体表示数据,什么时候不应该。

            public bool IsColorCalibFolderBold
            {
                get { return _IsColorCalibFolderBold; }
                set
                {
                    _IsColorCalibFolderBold = value;
                    OnPropertyChanged();   
                }
            }
    

    还有我的 .xalm

    ...
    
                  <DataGridTemplateColumn.CellTemplate>
                                            <DataTemplate>
                                                <ComboBox 
                                                    x:Name="Cb_color_calibration"
                                                    SelectionChanged="Cb_color_calibration_SelectionChanged"
                                                    ItemsSource="{Binding Path=ColorCalibrationFolders}"
                                                          SelectedItem="{Binding Path=SelectedColorCalibrationFolder}">
                                                    <ComboBox.ItemTemplate>
                                                        <DataTemplate>
                                                            <TextBlock Text="{Binding Path=UIRepresentation}" />
                                                        </DataTemplate>
                                                    </ComboBox.ItemTemplate>
    
                                                    <ComboBox.Style>
                                                        <Style TargetType="ComboBox">
                                                            <Style.Triggers>
                                                                <DataTrigger Binding="{Binding IsColorCalibFolderBold}" 
                                                                             Value="True">
                                                                    <Setter Property="FontWeight" Value="Bold"/>
                                                                </DataTrigger>
                                                            </Style.Triggers>
                                                        </Style>
                                                    </ComboBox.Style>
                                                </ComboBox>
                                            </DataTemplate>
                                        </DataGridTemplateColumn.CellTemplate>
    
    ...
    
    
    

    enter image description here

    enter image description here

    当我打开下拉列表时,所有项目也会加粗。。。我只需要表示是粗体的,但下拉列表本身不是。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Anya Shenanigans    6 年前

    我相信你需要设定 ComboBox.ItemContainerStyle

    <ComboBox.ItemContainerStyle>
      <Style TargetType="ComboBoxItem">
        <Setter Property="FontWeight" Value="Normal"/>
      </Style>
    </ComboBox.ItemContainerStyle>