C# 从文本框更改为组合框

C# 从文本框更改为组合框,c#,.net,wpf,xaml,mvvm,C#,.net,Wpf,Xaml,Mvvm,我有一个自定义样式应用于我的WPF页面中的文本框,但是我现在已经将文本框更改为可编辑的组合框,并且需要应用样式以适应新的可编辑的组合框。这是当前代码: <Style TargetType="ComboBox"> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="BorderBrush" Value="Silver"/>

我有一个自定义样式应用于我的WPF页面中的文本框,但是我现在已经将文本框更改为可编辑的组合框,并且需要应用样式以适应新的可编辑的组合框。这是当前代码:

<Style TargetType="ComboBox">
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="BorderBrush" Value="Silver"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="SnapsToDevicePixels" Value="True"/>
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="AllowDrop" Value="true"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TextBoxBase}">
                        <Border Name="Border" Padding="1" Background="#FFFFFF" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" >
                            <ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="False">
                                <Setter TargetName="Border" Property="Background" Value="#EEEEEE"/>
                                <Setter TargetName="Border" Property="BorderBrush" Value="#EEEEEE"/>
                                <Setter Property="Foreground" Value="#888888"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>


以上是我设法改变的,但是我不确定还有什么需要改变。可编辑组合框本质上是一个带有下拉列表的文本框,因此我假设它将保持基本不变。
TextBoxBase
似乎是最大的问题。

在创建一个新的示例项目后,问题似乎是Windows 8的一个bug

您是否比较了不同的控制模板以确定快速明显的差异?@ChrisW.-我发现主要问题似乎是TextBoxBase部分。我不确定ComboBoxI的等价物是什么。不久前,我不得不做同样的事情,如果没人马上回答,我会看看我是否能花一分钟的时间潜入wpf项目,在我开口回答之前再快速看一看。这将非常感谢@ChrisW。!您的TargetType=“ComboBox”不应该是TargetType=“TextBox”吗?