Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何更改切换按钮所在组合框上默认显示的组合框颜色? 这是我更改切换按钮所在组合框颜色的代码- #FF928B81 #FFC3C3 #FFF1F1 #0073b0 #FF004165 #FFa4ddfa_Wpf_Xaml - Fatal编程技术网

Wpf 如何更改切换按钮所在组合框上默认显示的组合框颜色? 这是我更改切换按钮所在组合框颜色的代码- #FF928B81 #FFC3C3 #FFF1F1 #0073b0 #FF004165 #FFa4ddfa

Wpf 如何更改切换按钮所在组合框上默认显示的组合框颜色? 这是我更改切换按钮所在组合框颜色的代码- #FF928B81 #FFC3C3 #FFF1F1 #0073b0 #FF004165 #FFa4ddfa,wpf,xaml,Wpf,Xaml,问题是在点击切换按钮时会显示更改后的颜色,但我希望更改后的颜色默认显示在组合框中,切换按钮所在的组合框中?我尝试了很多我的代码中已经存在的东西,请建议我应该做什么?您需要在样式-ComboBoxToggleButton This is my code to change the color of combo box box in which toggle button is located- <Window.Resources> <Color x:Key="Gr

问题是在点击切换按钮时会显示更改后的颜色,但我希望更改后的颜色默认显示在组合框中,切换按钮所在的组合框中?我尝试了很多我的代码中已经存在的东西,请建议我应该做什么?

您需要在样式-
ComboBoxToggleButton

This is my code to change the color of combo box box in which toggle button is located-
<Window.Resources>
        <Color x:Key="GrayColor_">#FF928B81</Color>
        <Color x:Key="LightGrayColor_">#FFC3C3C3</Color>
        <Color x:Key="LightLightGrayColor_">#FFF1F1F1</Color>
        <SolidColorBrush x:Key="GrayColor" Color="{StaticResource GrayColor_}"/>
        <SolidColorBrush x:Key="LightGrayColor" Color="{StaticResource LightGrayColor_}"/>
        <SolidColorBrush x:Key="LightLightGrayColor" Color="{StaticResource LightLightGrayColor_}"/>

        <Color x:Key="BlueColor_">#0073b0</Color>
        <Color x:Key="DarkBlueColor_">#FF004165</Color>
        <Color x:Key="LightBlueColor_">#FFa4ddfa</Color>
        <SolidColorBrush x:Key="BlueColor" Color="{StaticResource BlueColor_}" />
        <SolidColorBrush x:Key="DarkBlueColor" Color="{StaticResource DarkBlueColor_}" />
        <SolidColorBrush x:Key="LightBlueColor" Color="{StaticResource LightBlueColor_}" />

        <SolidColorBrush x:Key="Foreground" Color="Black"/>
        <SolidColorBrush x:Key="ForegroundWhite" Color="White"/>


        <Style x:Key="LightGrayBox" TargetType="{x:Type Border}">
            <Setter Property="Background" Value="White"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="SnapsToDevicePixels" Value="True"/>
            <Setter Property="BorderBrush" Value="{StaticResource LightGrayColor}" />
        </Style>


        <Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="20"/>
                            </Grid.ColumnDefinitions>
                            <Border x:Name="Border" Style="{DynamicResource LightGrayBox}" Grid.ColumnSpan="2" />
                            <Path x:Name="Arrow" Grid.Column="1" Opacity="0.6" Fill="{StaticResource GrayColor}" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 0 0 L 4 4 L 8 0 Z"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="ToggleButton.IsMouseOver" Value="true">
                                <Setter TargetName="Arrow" Property="Opacity" Value="1" />
                                <Setter TargetName="Arrow" Property="Fill" Value="{StaticResource BlueColor}" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource BlueColor}"/>
                            </Trigger>
                            <Trigger Property="ToggleButton.IsChecked" Value="true">
                                <Setter TargetName="Arrow" Property="Opacity" Value="1" />
                                <Setter TargetName="Arrow" Property="Fill" Value="{StaticResource BlueColor}" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style x:Key="ComboBoxToggleButtonActive" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="20"/>
                            </Grid.ColumnDefinitions>
                            <Border x:Name="Border" Grid.ColumnSpan="2" Background="{DynamicResource BlueColor}" />
                            <Path x:Name="Arrow" Grid.Column="1" Opacity="1" Fill="White" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 0 0 L 4 4 L 8 0 Z"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsFocused" Value="true">
                                <Setter TargetName="Border" Property="Background" Value="{DynamicResource BlueColor}" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="White"/>
                                <Setter Property="Foreground" Value="White" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <ControlTemplate x:Key="ComboBoxTextBox" TargetType="TextBox">
            <Border x:Name="PART_ContentHost" Background="{TemplateBinding Background}" />
        </ControlTemplate>

        <Style x:Key="StandardComboBox" TargetType="{x:Type ComboBox}">
            <Setter Property="Foreground" Value="{StaticResource Foreground}"/>
            <Setter Property="Height" Value="25"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="IsEditable" Value="True" />
            <Setter Property="OverridesDefaultStyle" Value="true"/>
            <Setter Property="SnapsToDevicePixels" Value="true"/>
            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
            <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
            <Setter Property="VerticalAlignment" Value="Top"/>
            <Setter Property="Width" Value="120"/>
            <Setter Property="IsSelected" Value="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource Self}, Mode=OneWay}" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ComboBox">
                        <Grid>
                            <ToggleButton Name="ToggleButton" Style="{StaticResource ComboBoxToggleButton}" Grid.Column="2" Focusable="false" ClickMode="Press"
                                      IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
                            <Label Name="ContentSite" IsHitTestVisible="False" Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
                               ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="3,3,23,3" VerticalAlignment="Center" HorizontalAlignment="Left" />
                            <!--<ContentPresenter Name="ContentSite" IsHitTestVisible="False" Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" 
                                          ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="3,3,23,3" VerticalAlignment="Center" HorizontalAlignment="Left" />-->
                            <TextBox x:Name="PART_EditableTextBox" 
                                 CaretBrush="{DynamicResource ForegroundWhite}"
                                 Style="{x:Null}" 
                                 Template="{StaticResource ComboBoxTextBox}" 
                                 HorizontalAlignment="Left" 
                                 VerticalAlignment="Center" 
                                 Margin="3,3,23,3" 
                                 Focusable="True" 
                                 Background="Transparent" 
                                 Foreground="{StaticResource ForegroundWhite}" 
                                 Visibility="Hidden"
                                 IsReadOnly="{TemplateBinding IsReadOnly}"/>
                            <Popup VerticalOffset="-1" SnapsToDevicePixels="True" Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}" AllowsTransparency="True"  Focusable="False" PopupAnimation="Fade">
                                <Grid Name="DropDown" SnapsToDevicePixels="True" MinWidth="{TemplateBinding ActualWidth}" MaxHeight="200">
                                    <Border x:Name="DropDownBorder" Style="{DynamicResource LightGrayBox}"/>
                                    <ScrollViewer SnapsToDevicePixels="True">
                                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
                                    </ScrollViewer>
                                </Grid>
                            </Popup>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="HasItems" Value="false">
                                <Setter TargetName="DropDownBorder" Property="MinHeight" Value="20"/>
                            </Trigger>
                            <Trigger Property="IsGrouping" Value="true">
                                <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
                            </Trigger>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter TargetName="ToggleButton" Property="Style" Value="{StaticResource ComboBoxToggleButtonActive}" />
                                <Setter TargetName="ContentSite" Property="Foreground" Value="{DynamicResource ForegroundWhite}"/>
                            </Trigger>
                            <Trigger Property="IsSelected" Value="False">
                                <Setter TargetName="PART_EditableTextBox" Property="Foreground" Value="{DynamicResource Foreground}"/>
                                <Setter TargetName="ContentSite" Property="Foreground" Value="{DynamicResource Foreground}"/>
                            </Trigger>
                            <Trigger Property="IsEditable" Value="true">
                                <Setter Property="IsTabStop" Value="false"/>
                                <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/>
                                <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Resources>
                <Style TargetType="ComboBoxItem">
                    <Setter Property="SnapsToDevicePixels" Value="true"/>
                    <Setter Property="OverridesDefaultStyle" Value="true"/>
                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                    <Setter Property="VerticalContentAlignment" Value="Center" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ComboBoxItem">
                                <Border Name="Border" Padding="2" SnapsToDevicePixels="true" BorderThickness="1">
                                    <ContentPresenter />
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsHighlighted" Value="true">
                                        <Setter TargetName="Border" Property="Background" Value="{DynamicResource BlueColor}"/>
                                        <Setter TargetName="Border" Property="Padding" Value="2,3,2,3" />
                                        <Setter Property="Foreground" Value="White" />
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>

                </Style>

            </Style.Resources>
        </Style>
    </Window.Resources>


    <Grid>
        <ComboBox Height="23" Margin="122,32,100,0" Style="{StaticResource StandardComboBox}"  Name="comboBox1" VerticalAlignment="Top" IsEditable="True" Text="Hello">
            <ComboBoxItem Content="2"></ComboBoxItem>
            <ComboBoxItem Content="3"></ComboBoxItem>
        </ComboBox>
    </Grid>

...
...
<Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ToggleButton">
               ...
                    <Border x:Name="Border" Style="{DynamicResource LightGrayBox}"
                    Grid.ColumnSpan="2" Background="{StaticResource BlueColor}"/>
               ...
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>