Frage

Ich habe eine Combobox, die auf einer Datenmenge gebunden ist, die dann ein Datatrigger verwendet einen Separator eingefügt, wenn er eine begegnet ‚-‘ in den Daten (beispielsweise in dieser Frage) .

Der Hintergrund des Menüs hat benutzerdefinierte Farbe, eingestellt durch eine Ressource Wörterbuch verwenden. Die Farbe ist in diesem Fall # FFF8F4C5

Wenn ich einen Separator auf ein nicht datengebundene einfachen Kombinationsfeld hinzufügen, wird es richtig. Aber wenn es mit dem Datatrigger hinzufügen, es sieht nicht wie der Rest des Menüs, wie Sie unten sehen können (es hat einen weißen Hintergrund).

weißer Hintergrund auf Separator

Wenn ich den Hintergrund des Separators eingestellt, es ändert sich tatsächlich die dunklere Linie, was Farbe. Ich kann nicht scheinen zu finden, wie der weißen Bereich zu ändern, um die gleiche Farbe wie das Menü anzupassen.

War es hilfreich?

Lösung

In der Control, schließen Sie den Separator in eine gemeinsame Grenze mit Hintergrund an die Eltern gebunden ComboBoxItem den Hintergrund. So etwas wie folgt aus:

<ControlTemplate TargetType="{x:Type ComboBoxItem}">
    <Border Background="{TemplateBinding Background}">
        <Separator HorizontalAlignment="Stretch" IsEnabled="False"/>
    </Border>
</ControlTemplate>

Andere Tipps

einen Separator Stil verwenden:

<Style x:Key="SeparatorStyle1" TargetType="{x:Type Separator}">
    <Setter Property="Background" Value="{DynamicResource 
        {x:Static SystemColors.ControlDarkBrushKey}}"/>
    <Setter Property="Margin" Value="0,2,0,2"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Separator}">
                <Border Height="1" SnapsToDevicePixels="true" 
              Background="#FFCCD480" BorderBrush="#FF633A3A" BorderThickness="0,0,0,1"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

und es wie folgt verwenden

<ComboBox Background="#FFD2D2B5">
  <ListBoxItem Content="item1"/>
  <ListBoxItem Content="item2"/>
  <Separator Style="{DynamicResource SeparatorStyle1}"/>
  <ListBoxItem Content="item3"/>

Das sollte es tun

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top