如何在 XAML 中的 ComboBox 上删除 header space

How to remove header space on ComboBox in XAML

我试图在 StackPanel 中排列一个 TextBox 和一个 ComboBox,但 ComboBox 的顶部似乎有一些额外的 space 我无法删除。

如何让这两个控件正确对齐?

<StackPanel Orientation="Horizontal">
   <TextBox  IsTextPredictionEnabled="False" Margin="0,0,0,0" BorderBrush="Gray"               
        Text="{Binding ZoneName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  
        PlaceholderText="YourCompany"/>
    <ComboBox VerticalAlignment="Stretch" BorderBrush="Gray" Padding="0,0,0,0" Margin="0,0,0,0"                      
         ItemsSource="{Binding Path=DomainChoices}"
         SelectedValue="{Binding Path=SelectedDomainChoice, Mode=TwoWay}" 
                    SelectedValuePath="{Binding id}" 
                     DisplayMemberPath="{Binding text}"
                      Foreground="Black" Width="200">
                <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding text}"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
    </ComboBox>
</StackPanel>

当您查看 ComboBox 的 样式时,您会发现 <Border x:Name="ShortListOuterBorder" ....Margin 值为 Margin="{ThemeResource PhoneTouchTargetOverhang}"。此资源以上述样式定义:

<Thickness x:Key="PhoneTouchTargetOverhang">0,9.5</Thickness>

您可以轻松定义自己的样式,您可以在其中更改上述值,或更改 Border 的边距。您也可以尝试将 ComboBox 的边距设置为 0,-9.5,0,0 而不应用样式。