2016-05-08 14 views
0

Wie ändere ich den Hintergrund meiner Combobox ändern zu verwenden PresentationFramework.Aero2, da Sie mit dem auf Win 7 Fehler immer und unterwie ohne Combobox Hintergrund ohne PresentationFramework.Aero2

und Sie sind PresentationFramework.Aero2 mit diesem Code bekommen

<Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}"> 
     <Setter Property="OverridesDefaultStyle" Value="true"/> 
     <Setter Property="IsTabStop" Value="false"/> 
     <Setter Property="Focusable" Value="false"/> 
     <Setter Property="ClickMode" Value="Press"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ToggleButton}"> 
        <Border x:Name="templateRoot" BorderBrush="{StaticResource ComboBox.Static.Border}" BorderThickness="{TemplateBinding BorderThickness}" Background="Red" SnapsToDevicePixels="true"> 
         <Border x:Name="splitBorder" BorderBrush="Transparent" BorderThickness="1" HorizontalAlignment="Right" Margin="0" SnapsToDevicePixels="true" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"> 
          <Path x:Name="arrow" Data="F1 M 0,0 L 2.667,2.66665 L 5.3334,0 L 5.3334,-1.78168 L 2.6667,0.88501 L0,-1.78168 L0,0 Z" Fill="{StaticResource ComboBox.Static.Glyph}" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center"/> 
         </Border> 
        </Border>` 
+0

Haben Sie versucht, Visual Studio zu lassen für Sie eine Kopie der Steuervorlage erstellen ? Weil ich denke, dass der benutzerdefinierte Stil, den Sie mit Ihrer Frage zur Verfügung gestellt haben, wichtige Teile der Kontrollvorlage (wie z. B. Trigger) fehlt. Klicken Sie einfach mit der rechten Maustaste auf ein Kombinationsfeld im Dokument Gliederungsfenster und wählen Sie Bearbeiten Vorlage -> Bearbeiten Sie eine Kopie ... – feO2x

+0

ja, das ist die PresentationFramework.Aero2, die mir eine XAMLparse-Ausnahme geben, die mit fehlenden PresentationFramework.Aero2 auf Win beziehen 7 und darunter –

Antwort

0

ich kann nicht ganz verstehen, warum Sie eine Fehlermeldung erhalten, wenn Sie eine Kopie der Vorlage erstellen, aber den Standard-WPF-Stil für die ComboBox und ComboBoxItem kann auch auf MSDN finden: https://msdn.microsoft.com/en-us/library/ms752094(v=vs.100).aspx

Vielleicht können Sie diese verwenden, um die Vorlage so zu bearbeiten, wie Sie es brauchen.

0

könnten Sie so etwas wie diese diese in deiner Combobox

Style="{StaticResource ComboBoxTest2}" 

und dies in Ihrer ressource versuchen

<Style x:Key="ComboBoxTest2" TargetType="{x:Type ComboBox}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ComboBox}"> 
        <Grid> 
         <ToggleButton Grid.Column="2" Focusable="false" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" > 
          <ToggleButton.Template> 
           <ControlTemplate> 
            <Grid> 
             <Grid.ColumnDefinitions> 
              <ColumnDefinition Width="5*" /> 
              <ColumnDefinition Width="*" /> 
             </Grid.ColumnDefinitions> 
             <Border x:Name="Border" Grid.ColumnSpan="2" CornerRadius="5" Background="#FF303030" BorderBrush="Black" BorderThickness="1" /> 
             <Border Grid.Column="0" CornerRadius="5,0,0,5" Margin="1" Background="Black" BorderBrush="Black" BorderThickness="0,0,1,0" /> 
             <Path x:Name="Arrow" Grid.Column="1" Fill="#FFEAEAEA" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 0 0 L 4 4 L 8 0 Z"/> 
            </Grid> 
            <ControlTemplate.Triggers> 
             <Trigger Property="IsMouseOver" Value="true"> 
              <Setter TargetName="Border" Property="Background" Value="Green" /> 
             </Trigger> 
             <Trigger Property="ToggleButton.IsChecked" Value="true"> 
              <Setter TargetName="Border" Property="Background" Value="Green" /> 
             </Trigger> 
            </ControlTemplate.Triggers> 
           </ControlTemplate> 
          </ToggleButton.Template> 
         </ToggleButton> 
         <ContentPresenter x:Name="ContentSite" IsHitTestVisible="False" Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="3" /> 
         <TextBox x:Name="PART_EditableTextBox" Visibility="Hidden" IsReadOnly="{TemplateBinding IsReadOnly}"/> 
         <Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}" AllowsTransparency="True" Focusable="False" PopupAnimation="Slide"> 
          <Grid x:Name="DropDown" SnapsToDevicePixels="True" MinWidth="{TemplateBinding ActualWidth}" MaxHeight="{TemplateBinding MaxDropDownHeight}"> 
           <Border x:Name="DropDownBorder" Background="#FF303030" /> 
           <ScrollViewer SnapsToDevicePixels="True"> 
            <StackPanel IsItemsHost="True" /> 
           </ScrollViewer> 
          </Grid> 
         </Popup> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
Verwandte Themen