所以我试图在Expression blend中改变我的组合框的样式。
我做的是创建一个组合框,然后 RightClick>编辑模板>编辑副本
我可以更改组合框的颜色,除了组合框的背景和组合框的边框之间有白色边框。这是一个屏幕,你可以看到:
如您所见,蓝色和红色之间有一段时间的边界。据我所知,改变组合框颜色的代码如下:
<ToggleButton Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay,
RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource
ComboBoxReadonlyToggleButton}" BorderBrush="Red" Background="Blue"/>
但无论如何,总会有白色边框。我该如何摆脱它?
答案 0 :(得分:1)
我知道这是一个老问题,而且它是特定于混合但是当谷歌搜索这个问题时,这是我发现的第一件事。
一个解决这个问题的方法的一个非常简单的例子,比提到的第一个答案稍微复杂一点,就是设置“样式”属性。 (不确定这适用于混合,因为我不使用混合,但对于Visual Studio中的简单wpf,这可行)
例如,下面的代码创建一个窗口,就像问题中提到的那样,但白线(在下拉项中)可编辑。
<ComboBox Background="Blue" BorderBrush="Red">
<ComboBox.ItemContainerStyle>
<!-- Without this style section, there are white lines around the borders. Even if you set these properties in the comboBoxItem areas -->
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="Green"/>
<Setter Property="BorderBrush" Value="Purple"></Setter>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBoxItem MouseMove="schedule" Name="cbi1">schedule</ComboBoxItem>
</ComboBox>
答案 1 :(得分:0)
问题是当您编辑副本时,您正在使用Microsoft的内置chrome组件编辑副本。为了更改外部边框,您需要使用普通的WPF控件替换这些位,以便您可以更改这些值。对于组合框,您需要在此处使用代码:http://msdn.microsoft.com/en-us/library/ms752094
e:这是您要编辑的部分
<Border x:Name="Border"
Grid.ColumnSpan="2"
CornerRadius="2"
BorderThickness="1">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="0,1"
StartPoint="0,0">
<GradientStop Color="{DynamicResource BorderLightColor}"
Offset="0" />
<GradientStop Color="{DynamicResource BorderDarkColor}"
Offset="1" />
</LinearGradientBrush>
</Border.BorderBrush>