2012-07-17 22 views
7

Così sto provando a cambiare lo stile della mia casella combinata in Expression.Modifica dei colori del bordo di una casella combinata WPF

Quello che ho fatto è stato creare una casella combinata, e se ne andò RightClick> Modifica modello> Modifica una copia

E posso cambiare i colori della casella combinata, ad eccezione c'è un bordo bianco tra il sfondo della casella combinata e il bordo della casella combinata. Ecco una schermata in modo da vedere:

enter image description here

Come potete vedere, c'è un confine, mentre tra il blu e il rosso. Per quanto posso dire, il codice per cambiare il colore della casella combinata è il seguente:

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

Ma non importa cosa, c'è sempre un bordo bianco. Come faccio a liberarmene?

risposta

0

Il problema è quando si modifica una copia, si sta modificando una copia con i componenti cromati incorporati di Microsoft. Per cambiare quel confine esterno, dovrai sostituire quei bit con i normali controlli WPF in modo che tu possa modificare i valori. Per una casella combinata, si vorrebbe utilizzare il codice qui: http://msdn.microsoft.com/en-us/library/ms752094

e: Questa è la parte che si desidera modificare

<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

So che questa è una vecchia questione, ed è specifico per fondersi, ma quando googling per questo problema, questa è una delle prime cose che ho trovato.

Un esempio davvero semplice di come risolvere questo problema, è un po 'meno complesso rispetto alla prima risposta menzionata è impostare le proprietà "Stile". (Non sono sicuro che questo si applichi alla fusione poiché non uso la fusione, ma per la semplice wpf in Visual Studio, questo funziona)

Ad esempio, questo codice sotto crea una finestra come quella menzionata nella domanda, ma con le linee bianche (negli elementi a tendina) modificabili.

<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> 
Problemi correlati