C# 从文本框更改为组合框
我有一个自定义样式应用于我的WPF页面中的文本框,但是我现在已经将文本框更改为可编辑的组合框,并且需要应用样式以适应新的可编辑的组合框。这是当前代码: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"/>
<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”吗?