WPF:在不知道项目的情况下更改组合框的大小

WPF:在不知道项目的情况下更改组合框的大小,wpf,combobox,styles,font-size,Wpf,Combobox,Styles,Font Size,我想为wpf中的一些组合框设置FontSize。但我找到的唯一解决方案是设置特定ComboBoxItems的FontSize。但是项目是动态添加的(因此我可以每次收听ItemsChanged并设置样式,但这非常难看)。 是否有办法为组合框的所有项目设置FontSize EDIT1:组合框本身也会动态添加到代码中 EDIT2:以下是您的答案,一定是这样的: <Style TargetType="ComboBox" x:Key="MyComboBox""> <Setter

我想为wpf中的一些组合框设置
FontSize
。但我找到的唯一解决方案是设置特定
ComboBoxItem
s的
FontSize
。但是项目是动态添加的(因此我可以每次收听
ItemsChanged
并设置样式,但这非常难看)。 是否有办法为组合框的所有项目设置
FontSize

EDIT1:组合框本身也会动态添加到代码中

EDIT2:以下是您的答案,一定是这样的:

<Style TargetType="ComboBox" x:Key="MyComboBox"">
    <Setter Property="ItemContainerStyle" Value="{DynamicResource MyComboItemStyle}"/>
</Style>
<Style x:Key="MyComboItemStyle" TargetType="{x:Type ComboBoxItem}">
    <Setter Property="FontSize" Value="14"/>
</Style>
EDIT4:下面是组合框的初始化:

input = new ComboBox();
input.SetResourceReference(ComboBox.StyleProperty, "MyComboBox");

就这些

通过定义组合框的ItemTemplate,可以定义所有项目的呈现方式。在其中,您绑定到绑定项的属性

例如:

<ComboBox ItemsSource="{Binding whateverbinding}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Content}" FontSize="12" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

1.如果要为整个
组合框设置
FontSize
,可以设置
组合框本身的
FontSize
属性:

<ComboBox FontSize="18" ...>
   ...
</ComboBox>

两个都不行!第一个选项当然是我尝试的第一件事。@SpeziFish-显然这是因为组合框项目的内容以某种方式覆盖了组合框上设置的字体大小。你能发布项目内容的代码吗?@SpeziFish-刚刚试过,效果很好。在组合框内的文本框上是否设置了其他属性?这些文本框是否具有默认样式?组合框是否具有默认样式?您是否可以显示创建和初始化文本框的代码。您也可以尝试在组合框上指定TextBlock.FontSize=“…”。对不起,没有文本框,只有字符串(请参见编辑),我看错了代码。@SpeziFish-两者都有。他们做的基本相同。只有第一个选项在视觉树的更高级别上设置字体大小。因此绑定不正确。只需检查对象的哪些属性必须绑定到ComboBoxItem的文本。在我的示例中,将“Content”替换为此属性的名称如果我没有绑定,我会在代码中手动添加字符串(请参阅相关编辑)。因此请尝试Text=“{binding Path=。}”
<ComboBox FontSize="18" ...>
   ...
</ComboBox>
<ComboBox ...>
   <ComboBox.ItemContainerStyle>
       <Style TargetType="{x:Type ComboBoxItem}">
           <Setter Property="FontSize" Value="18"/>
       </Style>
   </ComboBox.ItemContainerStyle>
   ...
</ComboBox>