2012-07-17 21 views
7

Por lo tanto, estoy intentando cambiar el estilo de mi cuadro combinado en Mezcla de expresiones.Cambiar los colores del borde de un cuadro combinado de WPF

Lo que hice fue crear un cuadro combinado, y se fue RightClick> Editar plantilla> Editar una copia

y puedo cambiar los colores de la lista desplegable, excepto que hay un borde blanco en medio de la fondo del cuadro combinado, y el frontera del cuadro combinado. Aquí es una pantalla para que pueda ver:

enter image description here

Como se puede ver, hay una frontera, mientras que entre el azul y el rojo. Por lo que yo puedo decir, el código para cambiar el color del cuadro combinado es el siguiente:

<ToggleButton Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, 
RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource 
ComboBoxReadonlyToggleButton}" BorderBrush="Red" Background="Blue"/> 

Pero no importa qué, siempre hay un borde blanco. Como me deshago de esto?

Respuesta

0

El problema es que cuando edita una copia, está editando una copia con los componentes integrados de Chrome de Microsoft. Para cambiar ese límite externo, deberá reemplazar esos bits con controles WPF normales para que pueda cambiar los valores. Para un cuadro combinado, desea utilizar el código aquí: http://msdn.microsoft.com/en-us/library/ms752094

e: Esta es la parte que desea editar

<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> 
1

Sé que esto es una cuestión de edad, y es específica para mezclar, pero cuando Google para este problema, esta es una de las primeras cosas que encontré.

Un ejemplo realmente simple de una forma de solucionar esto, que es un poco menos complejo que la primera respuesta mencionada es establecer Propiedades de "Estilo". (No estoy seguro de que esto se aplique a blend, ya que no utilizo blend, pero para wpf simple en Visual Studio, esto funciona)

Por ejemplo, este código crea una ventana como la que se menciona en la pregunta, pero con las líneas blancas (en los elementos desplegables) editables.

<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> 
Cuestiones relacionadas